Skip to content

chore: update the minimum language based on maintenance mode #19

chore: update the minimum language based on maintenance mode

chore: update the minimum language based on maintenance mode #19

# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: (experimental / dev) Custard run
on:
# Run tests when a pull request is created or updated.
# This allows to run tests from forked repos (after reviewer's approval).
workflow_run:
workflows:
- Custard CI # .github/workflows/custard-ci.yaml
types:
- in_progress
# Run tests again as validation when a PR merge into main.
push:
branches:
- main
# To do manual runs through the Actions UI.
workflow_dispatch:
inputs:
run-all:
description: Run all tests
type: boolean
default: false
paths:
description: Comma separated packages to test
type: string
ref:
description: Branch, tag, or commit SHA to run tests on
type: string
default: main
jobs:
affected:
uses: GoogleCloudPlatform/cloud-samples-tools/.github/workflows/[email protected]
permissions:
statuses: write
with:
head-sha: ${{ github.event.workflow_run.head_sha || inputs.ref || github.sha }}
config-file: .github/config/nodejs-dev.jsonc
paths: ${{ (inputs.run-all && '.') || inputs.paths || '' }}
check-name: (experimental / dev) Custard CI
create-check-if: ${{ !!github.event.workflow_run }}
test:
if: needs.affected.outputs.paths != '[]'
needs: affected
runs-on: ubuntu-latest
timeout-minutes: 120 # 2 hours hard limit
permissions:
id-token: write
statuses: write
strategy:
fail-fast: false
matrix:
path: ${{ needs.affected.outputs.paths }}
continue-on-error: true
env:
GOOGLE_SAMPLES_PROJECT: long-door-651
GOOGLE_SERVICE_ACCOUNT: [email protected]
steps:
- name: Check queued
uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/[email protected]
id: queued
with:
sha: ${{ github.event.workflow_run.head_sha || inputs.ref || github.sha }}
name: (experimental / dev) Custard CI / ${{ github.job }} (${{ matrix.path }})
job-name: ${{ github.job }} (${{ matrix.path }})
if: ${{ !!github.event.workflow_run }}
- name: Setup Custard
uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/[email protected]
with:
path: ${{ matrix.path }}
ci-setup: ${{ toJson(fromJson(needs.affected.outputs.ci-setups)[matrix.path]) }}
project-id: ${{ env.GOOGLE_SAMPLES_PROJECT }}
workload-identity-provider: projects/1046198160504/locations/global/workloadIdentityPools/github-actions-pool/providers/github-actions-provider
service-account: ${{ env.GOOGLE_SERVICE_ACCOUNT }}
- name: Check in_progress
uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/[email protected]
id: in_progress
with:
check: ${{ steps.queued.outputs.check }}
status: in_progress
- name: Run tests for ${{ matrix.path }}
run: |
timeout ${{ fromJson(needs.affected.outputs.ci-setups)[matrix.path].timeout-minutes }}m \
make test dir=${{ matrix.path }}
- name: Check success
uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/[email protected]
with:
check: ${{ steps.in_progress.outputs.check }}
status: success
- name: Check failure
uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/[email protected]
if: failure()
with:
check: ${{ steps.in_progress.outputs.check }}
status: failure
done:
needs: [affected, test]
if: always()
runs-on: ubuntu-latest
permissions:
statuses: write
steps:
- name: Check success
uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/[email protected]
with:
check: ${{ needs.affected.outputs.check }}
status: success