我想找到一种方法将环境:语句从可重用工作流程移动到调用工作流程。
可重用工作流程的开始是:
name: Reusable Terraform Action
on:
workflow_call:
inputs:
working-folder:
description: The name of the client folder to process
required: true
type: string
jobs:
Terraform:
***environment: Development***
env:
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: ${{ inputs.working-folder }}
调用流程为:
name: Deployment TF Reuse
on:
workflow_dispatch:
jobs:
walm:
uses: ./.github/workflows/reuse-terraform.yml
with:
working-folder: r3us-walm
无论我尝试将环境:开发行放在调用工作流程中的何处,它都会使解析步骤失败。
如果我能找到一种方法来像这样获取它们,我不介意将这 4 个秘密作为参数传递给可重用工作流程,但它仍然抱怨“uses:”语句。
name: Deployment TF Reuse
on:
workflow_dispatch:
jobs:
walm:
environment: Development
uses: ./.github/workflows/reuse-terraform.yml
with:
working-folder: r3us-walm
secrets:
ACID: ${{ secrets.ARM_CLIENT_ID }}
ACS: ${{ secrets.ARM_CLIENT_SECRET }}
ATID: ${{ secrets.ARM_TENANT_ID }}
ASID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
在这个美妙的帮助下article和想法来自Azeem,我设法让它工作。
这是我的简单呼叫/呼叫者工作流程:
name: Calling Workflow
on:
workflow_dispatch:
jobs:
deploy_dev:
name: Deploy to Dev
uses: ./.github/workflows/reuse.yml
with:
environment: Development
secrets:
PASSWORD: ${{ secrets.PASSWORD }}
deploy_prod:
name: Deploy to Prod
needs: deploy_dev
uses: ./.github/workflows/reuse.yml
with:
environment: UAT
secrets:
PASSWORD: ${{ secrets.PASSWORD }}
并且,所谓的可重用工作流程是:
name: Called Workflow
on:
workflow_call:
inputs:
environment:
type: string
description: environment to deploy to
required: true
secrets:
PASSWORD:
required: true
jobs:
deploy:
name: Deploy to ${{ inputs.environment }}
runs-on: ubuntu-latest
environment: ${{ inputs.environment }}
steps:
- name: Dump Password
run: |
echo Password is $PASSWORD
if [[ $PASSWORD == *"password"* ]]; then
echo "This is the UAT password!"
else
echo "This is NOT the UAT password!"
fi
env:
PASSWORD: ${{ secrets.PASSWORD }}
除了学习如何将环境作为参数传递之外,我还记得简单的小工作流程最适合检查方法。
Thanks!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)