From 9d54765f3ebb1bb0d70338ae29bba9ee6aa55783 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 11 Jan 2023 19:49:18 -0500 Subject: [PATCH] chore(ci): skip non-ubuntu test release jobs on PRs (#17353) --- .github/workflows/ci.generate.ts | 42 +++++++-- .github/workflows/ci.yml | 148 ++++++++++++++++--------------- 2 files changed, 110 insertions(+), 80 deletions(-) diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts index dd91fbd888..9dd0b7c971 100644 --- a/.github/workflows/ci.generate.ts +++ b/.github/workflows/ci.generate.ts @@ -106,7 +106,9 @@ const installDenoStep = { with: { "deno-version": "v1.x" }, }; -function cancelEarlyIfDraftPr(nextSteps: Record[]): unknown[] { +function cancelEarlyIfDraftPr( + nextSteps: Record[], +): Record[] { // Couple issues with GH Actions: // // 1. The pull_request event type does not include the commit message, so @@ -129,14 +131,36 @@ function cancelEarlyIfDraftPr(nextSteps: Record[]): unknown[] { "echo $GIT_MESSAGE | grep '\\[ci\\]' || (echo 'Exiting due to draft PR. Commit with [ci] to bypass.' ; echo 'EXIT_EARLY=true' >> $GITHUB_OUTPUT)", ].join("\n"), }, - ...nextSteps.map((step) => { - const condition = "steps.exit_early.outputs.EXIT_EARLY != 'true'"; - step.if = "if" in step ? `${condition} && (${step.if})` : condition; - return step; - }), + ...nextSteps.map((step) => + skipForCondition(step, "steps.exit_early.outputs.EXIT_EARLY != 'true'") + ), ]; } +function skipJobsIfPrAndMarkedSkip( + steps: Record[], +): Record[] { + // GitHub does not make skipping a specific matrix element easy + // 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( + s, + "!(github.event_name == 'pull_request' && matrix.skip_pr)", + ) + ); +} + +function skipForCondition( + step: Record, + condition: string, +): Record { + return { + ...step, + if: "if" in step ? `${condition} && (${step.if})` : condition, + }; +} + const ci = { name: "ci", on: { @@ -181,6 +205,7 @@ const ci = { os: Runners.macos, job: "test", profile: "release", + skip_pr: true, }, { os: Runners.windows, @@ -191,6 +216,7 @@ const ci = { os: Runners.windows, job: "test", profile: "release", + skip_pr: true, }, { os: Runners.linux, @@ -229,7 +255,7 @@ const ci = { CARGO_TERM_COLOR: "always", RUST_BACKTRACE: "full", }, - steps: [ + steps: skipJobsIfPrAndMarkedSkip([ { name: "Configure git", run: [ @@ -791,7 +817,7 @@ const ci = { }, }, ]), - ], + ]), }, "publish-canary": { name: "publish canary", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f051a458fa..87b8438c28 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,12 +33,14 @@ jobs: - os: macos-12 job: test profile: release + skip_pr: true - os: '${{ github.repository == ''denoland/deno'' && ''windows-2019-xl'' || ''windows-2019'' }}' job: test profile: fastci - os: '${{ github.repository == ''denoland/deno'' && ''windows-2019-xl'' || ''windows-2019'' }}' job: test profile: release + skip_pr: true - os: '${{ github.repository == ''denoland/deno'' && ''ubuntu-20.04-xl'' || ''ubuntu-20.04'' }}' job: test profile: release @@ -63,14 +65,16 @@ jobs: run: |- git config --global core.symlinks true git config --global fetch.parallel 32 + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr)' - name: Clone repository uses: actions/checkout@v3 with: fetch-depth: 5 submodules: false + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr)' - name: Cancel if draft PR id: exit_early - if: github.event.pull_request.draft == true + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (github.event.pull_request.draft == true)' shell: bash run: |- GIT_MESSAGE=$(git log --format=%s -n 1 ${{github.event.after}}) @@ -78,27 +82,27 @@ jobs: echo $GIT_MESSAGE | grep '\[ci\]' || (echo 'Exiting due to draft PR. Commit with [ci] to bypass.' ; echo 'EXIT_EARLY=true' >> $GITHUB_OUTPUT) - name: Clone submodule ./test_util/std run: git submodule update --init --recursive --depth=1 -- ./test_util/std - if: steps.exit_early.outputs.EXIT_EARLY != 'true' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' - name: Clone submodule ./test_util/wpt run: git submodule update --init --recursive --depth=1 -- ./test_util/wpt - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test') + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job == ''test''))' - name: Clone submodule ./third_party run: git submodule update --init --recursive --depth=1 -- ./third_party - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'lint' || matrix.job == 'bench') + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job == ''lint'' || matrix.job == ''bench''))' - name: 'Create source tarballs (release, linux)' if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && matrix.profile == 'release' && matrix.job == 'test' && github.repository == 'denoland/deno' && - startsWith(github.ref, 'refs/tags/')) + startsWith(github.ref, 'refs/tags/'))) run: |- mkdir -p target/release tar --exclude=".git*" --exclude=target --exclude=third_party/prebuilt \ -czvf target/release/deno_src.tar.gz -C .. deno - uses: dtolnay/rust-toolchain@stable - if: steps.exit_early.outputs.EXIT_EARLY != 'true' - - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'lint' || matrix.job == 'test') + 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'' || matrix.job == ''test''))' name: Install Deno uses: denoland/setup-deno@v1 with: @@ -107,9 +111,9 @@ jobs: uses: actions/setup-python@v4 with: python-version: 3.8 - if: steps.exit_early.outputs.EXIT_EARLY != 'true' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' - name: Remove unused versions of Python - if: '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'' && (startsWith(matrix.os, ''windows'')))' shell: pwsh run: |- $env:PATH -split ";" | @@ -120,15 +124,15 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18 - if: steps.exit_early.outputs.EXIT_EARLY != 'true' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' - name: Setup gcloud (unix) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os != 'Windows' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os != 'Windows' && matrix.profile == 'release' && matrix.job == 'test' && github.repository == 'denoland/deno' && (github.ref == 'refs/heads/main' || - startsWith(github.ref, 'refs/tags/'))) + startsWith(github.ref, 'refs/tags/')))) uses: google-github-actions/setup-gcloud@v0 with: project_id: denoland @@ -136,12 +140,12 @@ jobs: export_default_credentials: true - name: Setup gcloud (windows) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Windows' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Windows' && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && (github.ref == 'refs/heads/main' || - startsWith(github.ref, 'refs/tags/'))) + startsWith(github.ref, 'refs/tags/')))) uses: google-github-actions/setup-gcloud@v0 env: CLOUDSDK_PYTHON: '${{env.pythonLocation}}\python.exe' @@ -151,13 +155,13 @@ jobs: export_default_credentials: true - name: Configure canary build if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - github.ref == 'refs/heads/main') + github.ref == 'refs/heads/main')) shell: bash run: echo "DENO_CANARY=true" >> $GITHUB_ENV - - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.use_sysroot) + - if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.use_sysroot))' name: Set up incremental LTO and sysroot build run: |- # Avoid running man-db triggers, which sometimes takes several minutes @@ -230,7 +234,7 @@ jobs: then deno --version fi - if: steps.exit_early.outputs.EXIT_EARLY != 'true' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' - name: Cache Cargo home uses: actions/cache@v3 with: @@ -239,10 +243,10 @@ jobs: ~/.cargo/registry/cache ~/.cargo/git/db key: '18-cargo-home-${{ matrix.os }}-${{ hashFiles(''Cargo.lock'') }}' - if: steps.exit_early.outputs.EXIT_EARLY != 'true' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' - name: Restore cache build output (PR) uses: actions/cache/restore@v3 - if: 'steps.exit_early.outputs.EXIT_EARLY != ''true'' && (github.ref != ''refs/heads/main'' && !startsWith(github.ref, ''refs/tags/''))' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (github.ref != ''refs/heads/main'' && !startsWith(github.ref, ''refs/tags/'')))' with: path: |- ./target @@ -252,7 +256,7 @@ jobs: key: never_saved restore-keys: '18-cargo-target-${{ matrix.os }}-${{ matrix.profile }}-' - name: Apply and update mtime cache - if: 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'' && (matrix.profile == ''release''))' uses: ./.github/mtime_cache with: cache-path: ./target @@ -265,126 +269,126 @@ jobs: https://github.com/rust-lang/crates.io-index \ ~/.cargo/registry/index/github.com-1ecc6299db9ec823 fi - if: steps.exit_early.outputs.EXIT_EARLY != 'true' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' - name: test_format.js - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'lint') + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job == ''lint''))' run: deno run --unstable --allow-write --allow-read --allow-run ./tools/format.js --check - name: lint.js - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'lint') + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job == ''lint''))' run: deno run --unstable --allow-write --allow-read --allow-run ./tools/lint.js - name: Build debug if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && ((matrix.job == 'test' || matrix.job == 'bench') && - matrix.profile == 'debug') + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && ((matrix.job == 'test' || matrix.job == 'bench') && + matrix.profile == 'debug')) run: cargo build --locked --all-targets - name: Build fastci - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && ((matrix.job == 'test' && matrix.profile == 'fastci')) + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && ((matrix.job == ''test'' && matrix.profile == ''fastci'')))' run: cargo build --locked --all-targets env: CARGO_PROFILE_DEV_DEBUG: 0 - name: Build release if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && ((matrix.job == 'test' || matrix.job == 'bench') && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && ((matrix.job == 'test' || matrix.job == 'bench') && matrix.profile == 'release' && (matrix.use_sysroot || (github.repository == 'denoland/deno' && (github.ref == 'refs/heads/main' || - startsWith(github.ref, 'refs/tags/'))))) + startsWith(github.ref, 'refs/tags/')))))) run: cargo build --release --locked --all-targets - name: Upload PR artifact (linux) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'release' && (matrix.use_sysroot || (github.repository == 'denoland/deno' && (github.ref == 'refs/heads/main' || - startsWith(github.ref, 'refs/tags/'))))) + startsWith(github.ref, 'refs/tags/')))))) uses: actions/upload-artifact@v3 with: name: 'deno-${{ github.event.number }}' path: target/release/deno - name: Pre-release (linux) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && matrix.job == 'test' && matrix.profile == 'release' && - github.repository == 'denoland/deno') + github.repository == 'denoland/deno')) run: |- cd target/release zip -r deno-x86_64-unknown-linux-gnu.zip deno ./deno types > lib.deno.d.ts - name: Pre-release (mac) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'macOS') && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'macOS') && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))) + (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')))) run: |- cd target/release zip -r deno-x86_64-apple-darwin.zip deno - name: Pre-release (windows) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'windows') && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'windows') && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/'))) + (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')))) run: Compress-Archive -CompressionLevel Optimal -Force -Path target/release/deno.exe -DestinationPath target/release/deno-x86_64-pc-windows-msvc.zip - name: Upload canary to dl.deno.land (unix) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os != 'Windows' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os != 'Windows' && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - github.ref == 'refs/heads/main') + github.ref == 'refs/heads/main')) run: 'gsutil -h "Cache-Control: public, max-age=3600" cp ./target/release/*.zip gs://dl.deno.land/canary/$(git rev-parse HEAD)/' - name: Upload canary to dl.deno.land (windows) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Windows' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Windows' && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - github.ref == 'refs/heads/main') + github.ref == 'refs/heads/main')) env: CLOUDSDK_PYTHON: '${{env.pythonLocation}}\python.exe' shell: bash run: 'gsutil -h "Cache-Control: public, max-age=3600" cp ./target/release/*.zip gs://dl.deno.land/canary/$(git rev-parse HEAD)/' - name: Test debug if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'debug' && - !startsWith(github.ref, 'refs/tags/')) + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'debug' && + !startsWith(github.ref, 'refs/tags/'))) run: |- cargo test --locked --doc cargo test --locked - name: Test fastci - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && ((matrix.job == 'test' && matrix.profile == 'fastci')) + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && ((matrix.job == ''test'' && matrix.profile == ''fastci'')))' run: cargo test --locked env: CARGO_PROFILE_DEV_DEBUG: 0 - name: Test release if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'release' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'release' && (matrix.use_sysroot || ( github.repository == 'denoland/deno' && - github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/')))) + github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/'))))) run: cargo test --release --locked - name: Check deno binary - if: 'steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.profile == ''release'' && startsWith(github.ref, ''refs/tags/''))' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.profile == ''release'' && startsWith(github.ref, ''refs/tags/'')))' shell: bash run: target/release/deno eval "console.log(1+2)" | grep 3 env: NO_COLOR: 1 - name: Check deno binary (in sysroot) - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.profile == 'release' && matrix.use_sysroot) + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.profile == ''release'' && matrix.use_sysroot))' run: sudo chroot /sysroot "$(pwd)/target/release/deno" --version - name: Configure hosts file for WPT - if: 'steps.exit_early.outputs.EXIT_EARLY != ''true'' && (startsWith(matrix.os, ''ubuntu'') && matrix.job == ''test'')' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (startsWith(matrix.os, ''ubuntu'') && matrix.job == ''test''))' run: ./wpt make-hosts-file | sudo tee -a /etc/hosts working-directory: test_util/wpt/ - name: Run web platform tests (debug) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && matrix.job == 'test' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && matrix.job == 'test' && matrix.profile == 'debug' && - github.ref == 'refs/heads/main') + github.ref == 'refs/heads/main')) env: DENO_BIN: ./target/debug/deno run: |- @@ -398,8 +402,8 @@ jobs: ./tools/wpt.ts run --quiet --binary="$DENO_BIN" - name: Run web platform tests (release) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && matrix.job == 'test' && - matrix.profile == 'release' && !startsWith(github.ref, 'refs/tags/')) + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (startsWith(matrix.os, 'ubuntu') && matrix.job == 'test' && + matrix.profile == 'release' && !startsWith(github.ref, 'refs/tags/'))) env: DENO_BIN: ./target/release/deno run: |- @@ -417,11 +421,11 @@ jobs: - name: Upload wpt results to dl.deno.land continue-on-error: true if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Linux' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Linux' && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/')) + github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/'))) run: |- gzip ./wptreport.json gsutil -h "Cache-Control: public, max-age=3600" cp ./wpt.json gs://dl.deno.land/wpt/$(git rev-parse HEAD).json @@ -431,11 +435,11 @@ jobs: - name: Upload wpt results to wpt.fyi continue-on-error: true if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Linux' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Linux' && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/')) + github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/'))) env: WPT_FYI_USER: deno WPT_FYI_PW: '${{ secrets.WPT_FYI_PW }}' @@ -444,13 +448,13 @@ jobs: ./target/release/deno run --allow-all --lock=tools/deno.lock.json \ ./tools/upload_wptfyi.js $(git rev-parse HEAD) --ghstatus - name: Run benchmarks - if: 'steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job == ''bench'' && !startsWith(github.ref, ''refs/tags/''))' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job == ''bench'' && !startsWith(github.ref, ''refs/tags/'')))' run: cargo bench --locked - name: Post Benchmarks if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'bench' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'bench' && github.repository == 'denoland/deno' && - github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/')) + github.ref == 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/'))) env: DENOBOT_PAT: '${{ secrets.DENOBOT_PAT }}' run: |- @@ -466,30 +470,30 @@ jobs: git commit --message "Update benchmarks" git push origin gh-pages - name: Build product size info - if: 'steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job != ''lint'' && matrix.profile != ''fastci'' && github.repository == ''denoland/deno'' && (github.ref == ''refs/heads/main'' || startsWith(github.ref, ''refs/tags/'')))' + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job != ''lint'' && matrix.profile != ''fastci'' && github.repository == ''denoland/deno'' && (github.ref == ''refs/heads/main'' || startsWith(github.ref, ''refs/tags/''))))' run: |- du -hd1 "./target/${{ matrix.profile }}" du -ha "./target/${{ matrix.profile }}/deno" - name: Worker info - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'bench') + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && (matrix.job == ''bench''))' run: |- cat /proc/cpuinfo cat /proc/meminfo - name: Upload release to dl.deno.land (unix) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os != 'Windows' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os != 'Windows' && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - startsWith(github.ref, 'refs/tags/')) + startsWith(github.ref, 'refs/tags/'))) run: 'gsutil -h "Cache-Control: public, max-age=3600" cp ./target/release/*.zip gs://dl.deno.land/release/${GITHUB_REF#refs/*/}/' - name: Upload release to dl.deno.land (windows) if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Windows' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Windows' && matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - startsWith(github.ref, 'refs/tags/')) + startsWith(github.ref, 'refs/tags/'))) env: CLOUDSDK_PYTHON: '${{env.pythonLocation}}\python.exe' shell: bash @@ -497,20 +501,20 @@ jobs: - name: Create release notes shell: bash if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - startsWith(github.ref, 'refs/tags/')) + startsWith(github.ref, 'refs/tags/'))) run: |- export PATH=$PATH:$(pwd)/target/release ./tools/release/05_create_release_notes.ts - name: Upload release to GitHub uses: softprops/action-gh-release@v0.1.15 if: |- - steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && matrix.profile == 'release' && github.repository == 'denoland/deno' && - startsWith(github.ref, 'refs/tags/')) + startsWith(github.ref, 'refs/tags/'))) env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' with: @@ -524,7 +528,7 @@ jobs: draft: true - name: Save cache build output (main) uses: actions/cache/save@v3 - if: steps.exit_early.outputs.EXIT_EARLY != 'true' && ((matrix.profile == 'release' || matrix.profile == 'fastci') && github.ref == 'refs/heads/main') + if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'' && ((matrix.profile == ''release'' || matrix.profile == ''fastci'') && github.ref == ''refs/heads/main''))' with: path: |- ./target