Tag triggered apply to production #22
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Demo | Workflow 3 - Apply Targetted at Production from Main | |
run-name: Tag triggered apply to production | |
on: | |
push: | |
tags: | |
- '*' | |
paths: | |
- '**.tf' | |
# release: | |
# types: [created, published, released] | |
jobs: | |
terraform-upload-plan-apply: | |
environment: 'production' | |
runs-on: ubuntu-latest | |
env: | |
TF_API_KEY: ${{ secrets.TF_API_KEY }} | |
TF_CLOUD_ORGANIZATION: ${{ vars.TF_CLOUD_ORG }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref_name }} | |
- name: Upload configuration to tf cloud | |
uses: hashicorp/tfc-workflows-github/actions/[email protected] | |
id: upload-config | |
with: | |
token: ${{ secrets.TF_API_KEY }} | |
workspace: ${{ vars.TF_WORKSPACE }} | |
directory: "workload/terraform/jamfpro" | |
- name: Terraform plan | |
id: terraform-plan | |
uses: hashicorp/tfc-workflows-github/actions/[email protected] | |
with: | |
token: ${{ secrets.TF_API_KEY }} | |
workspace: ${{ vars.TF_WORKSPACE }} | |
configuration_version: ${{ steps.upload-config.outputs.configuration_version_id }} | |
- name: Terraform Apply | |
id: terraform-apply | |
uses: hashicorp/tfc-workflows-github/actions/[email protected] | |
with: | |
token: ${{ secrets.TF_API_KEY }} | |
run: ${{ steps.terraform-plan.outputs.run_id }} | |
- name: Save outputs to file | |
run: | | |
cat << EOF > ${{ vars.ARTIFACT_FN }} | |
{ | |
"status": "${{ steps.terraform-apply.outputs.status }}" | |
} | |
EOF | |
- name: Upload outputs json file as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ vars.APPLY_OUTPUT_ARTIFACT_NAME }} | |
path: ${{ vars.ARTIFACT_FN }} | |
retention-days: 0 | |
update-release: | |
name: Deposit plan output on trigger release | |
needs: terraform-upload-plan-apply | |
uses: ./.github/workflows/update_release.yml | |
with: | |
artifact-name: ${{ vars.APPLY_OUTPUT_ARTIFACT_NAME }} | |
git-tag: ${{ github.ref_name }} | |