From 9e5949fa52bfb2a7c5005f535911f12f6c2aef4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Thu, 12 Jan 2023 16:19:35 +0100 Subject: [PATCH] ci: update Windows runner, update Google Cloud integration, update Node (#17358) This commit rolls up following PRs into a single one: - https://github.com/denoland/deno/pull/16672 - https://github.com/denoland/deno/pull/16674 - https://github.com/denoland/deno/pull/16972 Generation script was updated to take into account these changes. Co-authored-by: Asher Gomez Co-authored-by: Geert-Jan Zwiers Co-authored-by: David Sherret --- .github/mtime_cache/action.js | 9 +---- .github/mtime_cache/action.yml | 2 +- .github/workflows/ci.generate.ts | 59 +++++++++++++++++++----------- .github/workflows/ci.yml | 44 ++++++++++++++++------ .github/workflows/post_publish.yml | 14 +++++-- 5 files changed, 83 insertions(+), 45 deletions(-) mode change 100644 => 100755 .github/workflows/ci.generate.ts diff --git a/.github/mtime_cache/action.js b/.github/mtime_cache/action.js index 37b957a742..4d4c961f71 100644 --- a/.github/mtime_cache/action.js +++ b/.github/mtime_cache/action.js @@ -3,15 +3,10 @@ // Node.js v12.x to run actions, so this is Node code and not Deno code. const { spawn } = require("child_process"); +const fs = require("fs"); +const { utimes, mkdir, readFile, writeFile } = require("fs/promises"); const { dirname, resolve } = require("path"); const { StringDecoder } = require("string_decoder"); -const { promisify } = require("util"); - -const fs = require("fs"); -const utimes = promisify(fs.utimes); -const mkdir = promisify(fs.mkdir); -const readFile = promisify(fs.readFile); -const writeFile = promisify(fs.writeFile); process.on("unhandledRejection", abort); main().catch(abort); diff --git a/.github/mtime_cache/action.yml b/.github/mtime_cache/action.yml index 20e7b251f5..f69085514d 100644 --- a/.github/mtime_cache/action.yml +++ b/.github/mtime_cache/action.yml @@ -7,4 +7,4 @@ inputs: required: true runs: main: action.js - using: node12 + using: node16 diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts old mode 100644 new mode 100755 index 9dd0b7c971..b5d1861649 --- a/.github/workflows/ci.generate.ts +++ b/.github/workflows/ci.generate.ts @@ -7,7 +7,7 @@ const Runners = { "${{ github.repository == 'denoland/deno' && 'ubuntu-20.04-xl' || 'ubuntu-20.04' }}", macos: "macos-12", windows: - "${{ github.repository == 'denoland/deno' && 'windows-2019-xl' || 'windows-2019' }}", + "${{ github.repository == 'denoland/deno' && 'windows-2022-xl' || 'windows-2022' }}", }; const sysRootStep = { @@ -106,6 +106,24 @@ const installDenoStep = { with: { "deno-version": "v1.x" }, }; +const authenticateWithGoogleCloud = { + name: "Authenticate with Google Cloud", + if: [ + "matrix.profile == 'release' &&", + "matrix.job == 'test' &&", + "github.repository == 'denoland/deno' &&", + "(github.ref == 'refs/heads/main' ||", + "startsWith(github.ref, 'refs/tags/'))", + ].join("\n"), + uses: "google-github-actions/auth@v1", + with: { + "project_id": "denoland", + "credentials_json": "${{ secrets.GCP_SA_KEY }}", + "export_environment_variables": true, + "create_credentials_file": true, + }, +}; + function cancelEarlyIfDraftPr( nextSteps: Record[], ): Record[] { @@ -306,6 +324,7 @@ const ci = { }, ...installPythonSteps, installNodeStep, + authenticateWithGoogleCloud, { name: "Setup gcloud (unix)", if: [ @@ -316,11 +335,9 @@ const ci = { "(github.ref == 'refs/heads/main' ||", "startsWith(github.ref, 'refs/tags/'))", ].join("\n"), - uses: "google-github-actions/setup-gcloud@v0", + uses: "google-github-actions/setup-gcloud@v1", with: { project_id: "denoland", - service_account_key: "${{ secrets.GCP_SA_KEY }}", - export_default_credentials: true, }, }, { @@ -333,14 +350,12 @@ const ci = { "(github.ref == 'refs/heads/main' ||", "startsWith(github.ref, 'refs/tags/'))", ].join("\n"), - uses: "google-github-actions/setup-gcloud@v0", + uses: "google-github-actions/setup-gcloud@v1", env: { CLOUDSDK_PYTHON: "${{env.pythonLocation}}\\python.exe", }, with: { project_id: "denoland", - service_account_key: "${{ secrets.GCP_SA_KEY }}", - export_default_credentials: true, }, }, { @@ -825,21 +840,23 @@ const ci = { needs: ["build"], if: "github.repository == 'denoland/deno' && github.ref == 'refs/heads/main'", - steps: [{ - name: "Setup gcloud", - uses: "google-github-actions/setup-gcloud@v0", - with: { - project_id: "denoland", - service_account_key: "${{ secrets.GCP_SA_KEY }}", - export_default_credentials: true, + steps: [ + authenticateWithGoogleCloud, + { + name: "Setup gcloud", + uses: "google-github-actions/setup-gcloud@v1", + with: { + project_id: "denoland", + }, }, - }, { - name: "Upload canary version file to dl.deno.land", - run: [ - "echo ${{ github.sha }} > canary-latest.txt", - 'gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-latest.txt', - ].join("\n"), - }], + { + name: "Upload canary version file to dl.deno.land", + run: [ + "echo ${{ github.sha }} > canary-latest.txt", + 'gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-latest.txt', + ].join("\n"), + }, + ], }, }, }; diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 87b8438c28..5d9bf48e3f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,10 +34,10 @@ jobs: job: test profile: release skip_pr: true - - os: '${{ github.repository == ''denoland/deno'' && ''windows-2019-xl'' || ''windows-2019'' }}' + - os: '${{ github.repository == ''denoland/deno'' && ''windows-2022-xl'' || ''windows-2022'' }}' job: test profile: fastci - - os: '${{ github.repository == ''denoland/deno'' && ''windows-2019-xl'' || ''windows-2019'' }}' + - os: '${{ github.repository == ''denoland/deno'' && ''windows-2022-xl'' || ''windows-2022'' }}' job: test profile: release skip_pr: true @@ -125,6 +125,19 @@ jobs: with: node-version: 18 if: '!(github.event_name == ''pull_request'' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != ''true'')' + - name: Authenticate with Google Cloud + if: |- + !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.profile == 'release' && + matrix.job == 'test' && + github.repository == 'denoland/deno' && + (github.ref == 'refs/heads/main' || + startsWith(github.ref, 'refs/tags/')))) + uses: google-github-actions/auth@v1 + with: + project_id: denoland + credentials_json: '${{ secrets.GCP_SA_KEY }}' + export_environment_variables: true + create_credentials_file: true - name: Setup gcloud (unix) if: |- !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os != 'Windows' && @@ -133,11 +146,9 @@ jobs: github.repository == 'denoland/deno' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')))) - uses: google-github-actions/setup-gcloud@v0 + uses: google-github-actions/setup-gcloud@v1 with: project_id: denoland - service_account_key: '${{ secrets.GCP_SA_KEY }}' - export_default_credentials: true - name: Setup gcloud (windows) if: |- !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (runner.os == 'Windows' && @@ -146,13 +157,11 @@ jobs: github.repository == 'denoland/deno' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')))) - uses: google-github-actions/setup-gcloud@v0 + uses: google-github-actions/setup-gcloud@v1 env: CLOUDSDK_PYTHON: '${{env.pythonLocation}}\python.exe' with: project_id: denoland - service_account_key: '${{ secrets.GCP_SA_KEY }}' - export_default_credentials: true - name: Configure canary build if: |- !(github.event_name == 'pull_request' && matrix.skip_pr) && (steps.exit_early.outputs.EXIT_EARLY != 'true' && (matrix.job == 'test' && @@ -543,12 +552,23 @@ jobs: - build if: github.repository == 'denoland/deno' && github.ref == 'refs/heads/main' steps: - - name: Setup gcloud - uses: google-github-actions/setup-gcloud@v0 + - name: Authenticate with Google Cloud + if: |- + matrix.profile == 'release' && + matrix.job == 'test' && + github.repository == 'denoland/deno' && + (github.ref == 'refs/heads/main' || + startsWith(github.ref, 'refs/tags/')) + uses: google-github-actions/auth@v1 + with: + project_id: denoland + credentials_json: '${{ secrets.GCP_SA_KEY }}' + export_environment_variables: true + create_credentials_file: true + - name: Setup gcloud + uses: google-github-actions/setup-gcloud@v1 with: project_id: denoland - service_account_key: '${{ secrets.GCP_SA_KEY }}' - export_default_credentials: true - name: Upload canary version file to dl.deno.land run: |- echo ${{ github.sha }} > canary-latest.txt diff --git a/.github/workflows/post_publish.yml b/.github/workflows/post_publish.yml index d285e28bfd..963e2bf8fa 100644 --- a/.github/workflows/post_publish.yml +++ b/.github/workflows/post_publish.yml @@ -10,12 +10,18 @@ jobs: runs-on: ubuntu-20.04 if: github.repository == 'denoland/deno' steps: - - name: Setup gcloud - uses: google-github-actions/setup-gcloud@v0 + - name: Authenticate with Google Cloud + uses: google-github-actions/auth@v1 + with: + project_id: denoland + credentials_json: ${{ secrets.GCP_SA_KEY }} + export_environment_variables: true + create_credentials_file: true + + - name: Setup gcloud + uses: google-github-actions/setup-gcloud@v1 with: project_id: denoland - service_account_key: ${{ secrets.GCP_SA_KEY }} - export_default_credentials: true - name: Upload version file to dl.deno.land run: |