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 <ashersaupingomez@gmail.com>
Co-authored-by: Geert-Jan Zwiers <geertjanzwiers@protonmail.com>
Co-authored-by: David Sherret <dsherret@gmail.com>
This commit is contained in:
Bartek Iwańczuk 2023-01-12 16:19:35 +01:00 committed by GitHub
parent 4d66be1e05
commit 1776dca6c7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 83 additions and 45 deletions

View file

@ -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);

View file

@ -7,4 +7,4 @@ inputs:
required: true
runs:
main: action.js
using: node12
using: node16

59
.github/workflows/ci.generate.ts vendored Normal file → Executable file
View file

@ -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<string, unknown>[],
): Record<string, unknown>[] {
@ -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"),
},
],
},
},
};

View file

@ -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

View file

@ -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: |