diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 508a69e0d6..b6e665271d 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -6,6 +6,10 @@ on: - develop types: - completed +# Run staging deploys one at a time +concurrency: + group: deploy-staging-${{ github.event.workflow_run.conclusion }} + cancel-in-progress: false env: PROJECT_ID: ${{ secrets.GKE_PROJECT }} GKE_CLUSTER: p5-gke-cluster diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 08e8f4ffe5..443dc1f351 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,6 +6,10 @@ on: - release types: - completed +# Run production deploys one at a time +concurrency: + group: deploy-production-${{ github.event.workflow_run.conclusion }} + cancel-in-progress: false env: PROJECT_ID: ${{ secrets.GKE_PROJECT }} GKE_CLUSTER: p5-gke-cluster @@ -14,6 +18,7 @@ env: IMAGE: ${{ secrets.DOCKER_USERNAME }}/p5.js-web-editor jobs: push_to_registry: + if: ${{ github.event.workflow_run.conclusion == 'success' }} environment: production name: Push Docker image to Docker Hub runs-on: ubuntu-latest @@ -47,7 +52,7 @@ jobs: with: service_account_key: ${{ secrets.GKE_SA_KEY }} project_id: ${{ secrets.GKE_PROJECT }} - + # Configure docker to use the gcloud command-line tool as a credential helper - run: |- gcloud --quiet auth configure-docker diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 58a339a9b7..13e6ccf347 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -3,6 +3,12 @@ on: workflow_dispatch: pull_request: branches: [develop] + +# Cancel superseded PR runs +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: test-e2e: environment: e2e-tests diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8067f31487..274a5a3614 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,17 +7,23 @@ on: - develop - release +# Cancel superseded PR runs; let develop/release runs finish since they trigger deploys +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: test: name: Test and lint code base runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: '18.20.x' - - run: npm install + cache: 'npm' + - run: npm ci - run: npm run test - run: npm run typecheck - run: npm run lint