From 04c701d8cd8564d16954e2162e01be3a0259d2d0 Mon Sep 17 00:00:00 2001 From: Antoine Delia Date: Tue, 9 Jul 2024 18:42:35 +0200 Subject: [PATCH] chore: prevent cicd if no changes in appropriate directories --- .github/workflows/main.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fd5fa41..7af1e9a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,6 +19,16 @@ jobs: working-directory: cloud steps: + - uses: actions/checkout@v3 + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + web: + - 'cloud/**' + terraform: + - 'terraform/**' + # Checkout the repository to the GitHub Actions runner - name: Checkout uses: actions/checkout@v2 @@ -29,22 +39,26 @@ jobs: # Install the latest version of Terraform CLI and configure the Terraform CLI configuration file with a Terraform Cloud user API token - name: Setup Terraform + if: steps.filter.outputs.terraform == 'true' uses: hashicorp/setup-terraform@v1 with: cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }} # Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc. - name: Terraform Init + if: steps.filter.outputs.terraform == 'true' working-directory: ./terraform run: terraform init # Checks that all Terraform configuration files adhere to a canonical format - name: Terraform Format + if: steps.filter.outputs.terraform == 'true' working-directory: ./terraform run: terraform fmt -check # Generates an execution plan for Terraform - name: Terraform Plan + if: steps.filter.outputs.terraform == 'true' working-directory: ./terraform run: terraform plan @@ -52,17 +66,19 @@ jobs: # Note: It is recommended to set up a required "strict" status check in your repository for "Terraform Cloud". See the documentation on "strict" required status checks for more information: https://help.github.com/en/github/administering-a-repository/types-of-required-status-checks - name: Terraform Apply working-directory: ./terraform - if: github.ref == 'refs/heads/master' && github.event_name == 'push' + if: steps.filter.outputs.terraform == 'true' && github.ref == 'refs/heads/master' && github.event_name == 'push' run: terraform apply -auto-approve - name: Build uses: actions/setup-node@v2 + if: steps.filter.outputs.web == 'true' - run: sudo wget https://github.com/gohugoio/hugo/releases/download/v0.99.0/hugo_extended_0.99.0_Linux-64bit.deb - run: sudo dpkg --install ./hugo_extended_0.99.0_Linux-64bit.deb - run: hugo - name: Deploy to AWS uses: jakejarvis/s3-sync-action@master + if: steps.filter.outputs.web == 'true' with: args: --acl public-read --follow-symlinks --delete env: