aas*_*yas 14 github docker github-actions
我有以下回购结构。
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .cosmos\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 .config\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .github\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 workflows\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 plan.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 update.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .gitignore\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 assets\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 1.png\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 2.png\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 3.png\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 us-west-2\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 applications\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test.json\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 cluster-config.json\n
Run Code Online (Sandbox Code Playgroud)\n以及以下 GH Action yaml 文件。
\n计划.yml
\nname: Cosmos Plan\n\non:\n pull_request:\n paths:\n - "**/applications/*.json"\n - "**/cluster-config.json"\n\njobs:\n find:\n name: Find edited clusters\n runs-on: ubuntu-latest\n outputs:\n new: ${{ steps.find.outputs.new }}\n modified: ${{ steps.find.outputs.modified }}\n anyNew: ${{ steps.find.outputs.anyNew }}\n anyModified: ${{ steps.find.outputs.anyModified }}\n steps:\n - name: Checkout\n uses: actions/checkout@v2\n\n - name: Checkout cosmos-find action\n uses: actions/checkout@v2\n with:\n repository: this/cosmos-find\n ref: refs/tags/v3\n path: ./.github/actions/cosmos-find\n token: ${{ secrets.COSMOS_PAT }}\n\n - name: Cosmos find\n id: find\n uses: ./.github/actions/cosmos-find\n\n create:\n needs: find\n if: ${{ needs.find.outputs.anyNew == \'true\' }}\n name: Create ${{ matrix.cluster }} cluster (plan)\n runs-on: ubuntu-latest\n container:\n image: ghcr.io/this/cosmos:v2.3.0-prerelease\n credentials:\n username: ${{ github.actor }}\n password: ${{ secrets.COSMOS_PAT }}\n volumes:\n - ${{ github.workspace }}/.cosmos/.config:/github/home/.cosmos/.config\n strategy:\n fail-fast: false\n matrix: ${{fromJson(needs.find.outputs.new)}}\n steps:\n - name: Check cosmos config file\n run: |\n ls -al /github/home/.cosmos/.config \n cat /github/home/.cosmos/.config\n
Run Code Online (Sandbox Code Playgroud)\n我想将 .cosmos/.config 文件从当前存储库安装到我正在运行操作的容器。
\n根据此 Github 工作流程语法https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainervolumes,我应该能够做到这一点。
\n我在 github 操作 yml 文件中使用以下代码块指定了卷。
\ncontainer:\n image: ghcr.io/this/cosmos:v2.3.0-prerelease\n credentials:\n username: ${{ github.actor }}\n password: ${{ secrets.COSMOS_PAT }}\n volumes:\n - ${{ github.workspace }}/.cosmos/.config:/github/home/.cosmos/.config\n
Run Code Online (Sandbox Code Playgroud)\n我可以看到在初始化容器阶段,GH Action 能够成功挂载文件。(以下日志)
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .cosmos\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 .config\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .github\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 workflows\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 plan.yml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 update.yml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .gitignore\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 assets\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 1.png\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 2.png\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 3.png\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 us-west-2\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 applications\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test.json\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 cluster-config.json\n
Run Code Online (Sandbox Code Playgroud)\n但是当我尝试通过 GH Step 列出并定位该文件时Check cosmos config file
,它告诉我它是一个目录。(错误和失败)
Run ls -al /github/home/.cosmos/.config \n ls -al /github/home/.cosmos/.config \n cat /github/home/.cosmos/.config\n shell: sh -e {0}\ncat: /github/home/.cosmos/.config: Is a directory\ntotal 8\ndrwxr-xr-x 2 root root 4096 May 21 16:50 .\ndrwxr-xr-x 3 root root 4096 May 21 16:50 ..\nError: Process completed with exit code 1.\n
Run Code Online (Sandbox Code Playgroud)\n我尝试通过提供完整路径将文件安装到本地 docker 容器上,并且没有任何问题。
\n谢谢。
\n小智 2
您应该能够通过缓存操作轻松地完成此操作。只需在一个作业中缓存该文件,然后在下一个作业中加载该缓存,如此处的示例所示
name: Caching Primes
Run Code Online (Sandbox Code Playgroud)
开:推
工作:构建:运行:ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cache Primes
id: cache-primes
uses: actions/cache@v3
with:
path: prime-numbers
key: ${{ runner.os }}-primes
- name: Generate Prime Numbers
if: steps.cache-primes.outputs.cache-hit != 'true'
run: /generate-primes.sh -d prime-numbers
- name: Use Prime Numbers
run: /primes.sh -d prime-numbers
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15684 次 |
最近记录: |