From 3713a10b644f3a99207201ba02956f4b3bdc9d1a Mon Sep 17 00:00:00 2001 From: David Sherret Date: Thu, 12 Jan 2023 12:07:37 -0500 Subject: [PATCH] chore(ci): use mtime cache for fastci (#17373) --- .github/workflows/ci.generate.ts | 16 ++++++++++------ .github/workflows/ci.yml | 6 +++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index 7fd40d839d..5f2946e36b 100644 --- a/.github/workflows/ci.generate.ts +++ b/.github/workflows/ci.generate.ts @@ -150,7 +150,7 @@ function cancelEarlyIfDraftPr( ].join("\n"), }, ...nextSteps.map((step) => - skipForCondition(step, "steps.exit_early.outputs.EXIT_EARLY != 'true'") + withCondition(step, "steps.exit_early.outputs.EXIT_EARLY != 'true'") ), ]; } @@ -162,14 +162,14 @@ function skipJobsIfPrAndMarkedSkip( // so just apply this condition to all the steps. // https://stackoverflow.com/questions/65384420/how-to-make-a-github-action-matrix-element-conditional return steps.map((s) => - skipForCondition( + withCondition( s, "!(github.event_name == 'pull_request' && matrix.skip_pr)", ) ); } -function skipForCondition( +function withCondition( step: Record, condition: string, ): Record { @@ -327,7 +327,9 @@ const ci = { if: "matrix.job == 'lint' || matrix.job == 'test'", ...installDenoStep, }, - ...installPythonSteps, + ...installPythonSteps.map((s) => + withCondition(s, "matrix.job != 'lint'") + ), { // only necessary for benchmarks if: "matrix.job == 'bench'", @@ -435,9 +437,11 @@ const ci = { }, { name: "Apply and update mtime cache", - if: "matrix.profile == 'release'", + if: "!startsWith(github.ref, 'refs/tags/')", uses: "./.github/mtime_cache", - with: { "cache-path": "./target" }, + with: { + "cache-path": "./target", + }, }, { // Shallow the cloning the crates.io index makes CI faster because it diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae5224e9f1..ca34302346 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -113,9 +113,9 @@ jobs: uses: actions/setup-python@v4 with: python-version: 3.8 - if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job != ''lint''))' - name: Remove unused versions of Python - if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (startsWith(matrix.os, ''windows'')))' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job != ''lint'' && (startsWith(matrix.os, ''windows''))))' shell: pwsh run: |- $env:PATH -split ";" | @@ -269,7 +269,7 @@ jobs: key: never_saved restore-keys: '18-cargo-target-${{ matrix.os }}-${{ matrix.profile }}-' - name: Apply and update mtime cache - if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.profile == ''release''))' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (!startsWith(github.ref, ''refs/tags/'')))' uses: ./.github/mtime_cache with: cache-path: ./target