Skip to content

Upgrade to Linode v4 package #979

Upgrade to Linode v4 package

Upgrade to Linode v4 package #979

name: Run Tests on a PR of the Templates repo
on:
pull_request:
branches:
- master
repository_dispatch:
types: [run-templates-command]
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,container,vm-azure-yaml"
PULUMI_API: https://api.pulumi-staging.io
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:
sentinel:
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
name: sentinel
needs:
- test
runs-on: ubuntu-latest
steps:
- name: Is workflow a success
run: echo yes
test:
if: github.event_name == 'repository_dispatch' || github.event.pull_request.head.repo.full_name == github.repository
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macOS-latest, windows-8core-2022]
go-version: [1.20.x]
node-version: [16.x]
python-version: [3.7]
dotnet: [6.0.x]
runs-on: ${{ matrix.platform }}
permissions:
contents: read
id-token: write
steps:
- name: Install Java 11 (temurin)
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- name: Install DotNet ${{ matrix.dotnet }}
uses: actions/setup-dotnet@v3
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 }}
- run: go env
- name: Install Pulumi CLI
uses: pulumi/actions@v4
with:
pulumi-version: ${{ env.PULUMI_VERSION != '' && format('v{0}', env.PULUMI_VERSION) || null }}
- run: pulumi version
- 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
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }}
ref: ${{ github.event.client_payload.pull_request.head.sha }}
- 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: Setup 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: Get dependencies
run: make ensure
- if: contains(matrix.platform, 'windows')
name: Running 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-yaml,fsharp,gcp-visualbasic,azure-classic-visualbasic"
- if: contains(matrix.platform, 'macOS')
name: Running macOS tests
run: |
set -euo pipefail
cd tests && go test -v -json -count=1 -cover -timeout 6h -parallel ${{ env.TESTPARALLELISM }} . 2>&1 | gotestfmt
- if: contains(matrix.platform, 'ubuntu')
name: Running Linux tests
run: |
set -euo pipefail
cd tests && go test -v -json -count=1 -cover -timeout 6h -parallel ${{ env.TESTPARALLELISM }} . 2>&1 | gotestfmt