Some workflow fixes #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test all templates | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
schedule: | |
- cron: '0 8 * * *' | |
repository_dispatch: | |
types: | |
- trigger-cron | |
- run-templates-command | |
workflow_dispatch: {} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
PULUMI_TEST_OWNER: "moolumi" | |
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} | |
AWS_REGION: "us-west-2" | |
GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: [email protected] | |
GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci | |
GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci | |
GOOGLE_PROJECT: pulumi-ci-gcp-provider | |
GOOGLE_PROJECT_NUMBER: 895284651812 | |
LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }} | |
SKIPPED_TESTS: "alicloud,digitalocean,kubernetes,openstack,equinix-metal,civo,aiven,auth0,github,oci,java-jbang,java-gradle,azuredevops,vm-azure" | |
PULUMI_API: https://api.pulumi-staging.io | |
PULUMI_VERSION: ${{ github.event.client_payload.ref }} | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }} | |
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} | |
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} | |
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }} | |
AZURE_LOCATION: westus | |
TESTPARALLELISM: 10 | |
PULUMI_TEMPLATE_LOCATION: ${{ github.workspace}} | |
jobs: | |
build: | |
name: Build | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: | |
- ubuntu-latest | |
- macOS-latest | |
- windows-8core-2022 | |
go-version: | |
- 1.21.x | |
node-version: | |
- 18.x | |
python-version: | |
- 3.8 | |
dotnet: | |
- 6.0.x | |
runs-on: ${{ matrix.platform }} | |
permissions: | |
contents: read | |
id-token: write | |
steps: | |
- name: Install Java 11 (temurin) | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
- if: contains(matrix.platform, 'macOS') | |
name: Install sbt (Scala) | |
run: | | |
brew install sbt | |
- name: Install DotNet ${{ matrix.dotnet }} | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: ${{ matrix.dotnet }} | |
- if: contains(matrix.platform, 'ubuntu') || contains(matrix.platform, 'windows') | |
name: DotNet clean on windows and ubuntu | |
run: | | |
dotnet nuget locals all --clear | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Set up Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Install Pulumi CLI | |
uses: pulumi/actions@v5 | |
with: | |
pulumi-version: ${{ env.PULUMI_VERSION != '' && format('v{0}', env.PULUMI_VERSION) || 'dev' }} | |
- run: echo "Pulumi $(pulumi version) is installed" | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python deps | |
run: | | |
pip3 install pyenv-win | |
pip3 install pipenv | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v3 | |
- name: Unshallow clone for tags | |
run: git fetch --prune --unshallow --tags | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-region: ${{ env.AWS_REGION }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
role-duration-seconds: 14400 # 4 hours | |
role-session-name: templates@githubActions | |
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }} | |
- name: Authenticate to Google Cloud | |
uses: google-github-actions/auth@v0 | |
with: | |
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{ env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }} | |
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }} | |
- name: Set up gcloud auth | |
uses: google-github-actions/setup-gcloud@v0 | |
with: | |
install_components: gke-gcloud-auth-plugin | |
- name: Install gotestfmt | |
uses: jaxxstorm/[email protected] | |
with: | |
repo: gotesttools/gotestfmt | |
- name: Install dependencies | |
run: make ensure | |
- if: contains(matrix.platform, 'windows') | |
name: Run Windows tests | |
shell: bash | |
run: | | |
set -euo pipefail | |
cd tests && go test -v -json -count=1 -cover -timeout 6h -parallel ${{ env.TESTPARALLELISM }} . 2>&1 | gotestfmt | |
env: | |
PULUMI_PYTHON_CMD: python | |
TESTPARALLELISM: 3 | |
SKIPPED_TESTS: "alicloud,digitalocean,kubernetes,openstack,equinix-metal,civo,aiven,auth0,github,oci,java-jbang,java-gradle,azuredevops,container,vm-azure,fsharp,gcp-visualbasic,azure-classic-visualbasic" | |
- if: contains(matrix.platform, 'macOS') || contains(matrix.platform, 'ubuntu') | |
name: Run non-Windows tests | |
run: | | |
set -euo pipefail | |
cd tests && go test -v -json -count=1 -cover -timeout 6h -parallel ${{ env.TESTPARALLELISM }} . 2>&1 | gotestfmt | |
- if: 'failure()' | |
name: Notify Slack | |
uses: 8398a7/action-slack@v3 | |
with: | |
author_name: Failure in ${{ matrix.platform }} template Tests | |
fields: repo,commit,author,action | |
status: ${{ job.status }} |