From c4756a9a457080f07cc32a82c3daa4db270f7cd5 Mon Sep 17 00:00:00 2001 From: Gabe Kangas Date: Thu, 11 Jul 2024 11:44:23 -0700 Subject: [PATCH] Reduce CI jobs being run when not needed --- .../workflows/automated-end-to-end-api.yaml | 13 ++++++++++++ .github/workflows/chromatic.yml | 21 +++++++++++++++---- .github/workflows/go-tests.yaml | 14 +++++++++++++ .github/workflows/hls-tests.yml | 12 +++++++++++ 4 files changed, 56 insertions(+), 4 deletions(-) diff --git a/.github/workflows/automated-end-to-end-api.yaml b/.github/workflows/automated-end-to-end-api.yaml index d42c9a2cc..f07e28885 100644 --- a/.github/workflows/automated-end-to-end-api.yaml +++ b/.github/workflows/automated-end-to-end-api.yaml @@ -18,14 +18,25 @@ jobs: with: concurrent_skipping: 'same_content_newer' + - name: Get changed files + id: changed-files-yaml + uses: tj-actions/changed-files@v44 + with: + files_yaml: | + src: + - '**/*.{go,mod,sum}' + - uses: earthly/actions-setup@v1 + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' with: version: 'latest' # or pin to an specific version, e.g. "v0.6.10" - name: Earthly version + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' run: earthly --version - name: Set up QEMU + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' id: qemu uses: docker/setup-qemu-action@v3 with: @@ -33,8 +44,10 @@ jobs: platforms: all - uses: actions/checkout@v4 + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' - name: Run API tests + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' uses: nick-fields/retry@v3 with: timeout_minutes: 10 diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 7b9ea24d9..0b1f87ee3 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -27,8 +27,21 @@ jobs: uses: fkirc/skip-duplicate-actions@v5 with: concurrent_skipping: 'same_content_newer' + + - name: Get changed files + id: changed-files-yaml + uses: tj-actions/changed-files@v44 + with: + path: 'web' + files_ignore: | + static/** + web/next.config.js + files_yaml: | + src: + - '**/*.{js,ts,tsx,jsx,md}' + - name: Check out code - if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }} + if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' && steps.changed-files-yaml.outputs.src_any_changed == 'true' }} uses: actions/checkout@v4 with: # Make sure the actual branch is checked out when running on pull requests @@ -37,13 +50,13 @@ jobs: fetch-depth: 0 - name: Install dependencies - if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }} + if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' && steps.changed-files-yaml.outputs.src_any_changed == 'true'}} run: npm install - name: Publish to Chromatic - if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' }} - + if: ${{ github.actor != 'renovate[bot]' && github.actor != 'renovate' && steps.changed-files-yaml.outputs.src_any_changed == 'true' }} uses: chromaui/action@v11 + # Chromatic GitHub Action options with: workingDir: web diff --git a/.github/workflows/go-tests.yaml b/.github/workflows/go-tests.yaml index 9c8293247..1053ffa46 100644 --- a/.github/workflows/go-tests.yaml +++ b/.github/workflows/go-tests.yaml @@ -18,7 +18,16 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Get changed files + id: changed-files-yaml + uses: tj-actions/changed-files@v44 + with: + files_yaml: | + src: + - '**/*.{go,mod,sum}' + - uses: actions/cache@v4 + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' with: path: | ~/.cache/go-build @@ -28,12 +37,14 @@ jobs: go-test- - name: Install go + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' uses: actions/setup-go@v5 with: go-version: '^1' cache: true - name: Run tests + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' run: go test ./... test-bsds: @@ -50,6 +61,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/cache@v4 + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' with: path: | ~/.cache/go-build @@ -60,9 +72,11 @@ jobs: - name: Install go uses: actions/setup-go@v5 + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' with: go-version: '^1' cache: true - name: Run tests + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' run: go test ./... diff --git a/.github/workflows/hls-tests.yml b/.github/workflows/hls-tests.yml index 47429da9d..42b1b8f54 100644 --- a/.github/workflows/hls-tests.yml +++ b/.github/workflows/hls-tests.yml @@ -24,8 +24,18 @@ jobs: uses: fkirc/skip-duplicate-actions@v5 with: concurrent_skipping: 'same_content_newer' + + - name: Get changed files + id: changed-files-yaml + uses: tj-actions/changed-files@v44 + with: + files_yaml: | + src: + - '**/*.{go,mod,sum}' + - uses: actions/checkout@v4 - uses: actions/setup-go@v5 + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' with: go-version: '1.22' cache: true @@ -43,6 +53,7 @@ jobs: ${{ runner.os }}- - name: Local stroage + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' uses: nick-fields/retry@v3 with: timeout_minutes: 10 @@ -50,6 +61,7 @@ jobs: command: cd test/automated/hls && ./run.sh - name: S3 storage + if: steps.changed-files-yaml.outputs.src_any_changed == 'true' uses: nick-fields/retry@v3 with: timeout_minutes: 10