Skip to content

Some test fixes

Some test fixes #1817

name: Run Examples Tests From PR
on:
pull_request:
branches:
- master
repository_dispatch:
types:
- run-example-tests-command
env:
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_ENVIRONMENT: public
ARM_LOCATION: westus
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
AWS_ACCESS_KEY_ID: " ${{ secrets.AWS_ACCESS_KEY_ID }}"
AWS_REGION: us-west-2
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
CLOUDSDK_CORE_DISABLE_PROMPTS: 1
DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
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"
GOOGLE_REGION: us-central1
GOOGLE_ZONE: us-central1-a
PACKET_AUTH_TOKEN: ${{ secrets.PACKET_AUTH_TOKEN }}
PR_COMMIT_SHA: ${{ github.event.client_payload.pull_request.head.sha }}
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_API: https://api.pulumi-staging.io
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
jobs:
comment-notification:
if: github.event_name == 'repository_dispatch'
name: comment-notification
runs-on: ubuntu-latest
steps:
- id: vars
name: Create URL to the run output
run: echo ::set-output
name=run-url::https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
- name: Update with Result
uses: peter-evans/create-or-update-comment@v1
with:
body: |-
Please view the results of the PR Build [Here][1]
[1]: ${{ steps.vars.outputs.run-url }}
issue-number: ${{ github.event.client_payload.github.payload.issue.number }}
repository: ${{ github.event.client_payload.github.payload.repository.full_name }}
token: ${{ secrets.GITHUB_TOKEN }}
# dotnet-unit-testing:
# if: github.event_name == 'repository_dispatch' ||
# github.event.pull_request.head.repo.full_name == github.repository
# name: Running ${{ matrix.source-dir }} test
# runs-on: ${{ matrix.platform }}
# steps:
# - name: Checkout Repo
# uses: actions/checkout@v3
# - name: Setup DotNet
# uses: actions/setup-dotnet@v1
# with:
# dotnet-version: ${{matrix.dotnetversion}}
# - name: Install Pulumi CLI
# uses: pulumi/actions@v5
# with:
# pulumi-version: dev
# - name: Print CLI version
# run: echo "Currently Pulumi $(pulumi version) is installed"
# - run: dotnet test
# working-directory: ${{ matrix.source-dir }}
# strategy:
# fail-fast: false
# matrix:
# dotnetversion:
# - 6.0.114
# platform:
# - ubuntu-latest
# source-dir:
# - testing-unit-cs
# - testing-unit-cs-mocks
# - testing-unit-fs-mocks
# go-unit-testing:
# if: github.event_name == 'repository_dispatch' ||
# github.event.pull_request.head.repo.full_name == github.repository
# name: Running ${{ matrix.source-dir }} test
# runs-on: ${{ matrix.platform }}
# steps:
# - name: Checkout Repo
# uses: actions/checkout@v3
# - name: Install Go
# uses: actions/setup-go@v2
# with:
# go-version: ${{matrix.goversion}}
# - name: Install Pulumi CLI
# uses: pulumi/actions@v5
# with:
# pulumi-version: dev
# - name: Print CLI version
# run: echo "Currently Pulumi $(pulumi version) is installed"
# - run: go test
# working-directory: ${{ matrix.source-dir }}
# strategy:
# fail-fast: false
# matrix:
# goversion:
# - 1.21.x
# platform:
# - ubuntu-latest
# source-dir:
# - testing-unit-go
kubernetes:
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
name: kubernetes
needs: test-infra-setup
permissions:
contents: read
id-token: write
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup DotNet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{matrix.dotnetversion}}
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: ${{matrix.nodeversion}}
registry-url: https://registry.npmjs.org
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{matrix.pythonversion}}
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: ${{matrix.goversion}}
- name: Install aws-iam-authenticator
run: >-
curl -o aws-iam-authenticator
https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
sudo mv aws-iam-authenticator /usr/local/bin
- name: Install Kubectl
run: >-
curl -LO
https://storage.googleapis.com/kubernetes-release/release/$(curl -s
https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv kubectl /usr/local/bin
- name: Install + Configure Helm
run: >-
curl -o- -L
https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get |
bash
helm init -c
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v0
with:
install_components: gke-gcloud-auth-plugin
- name: Login to Google Cloud Registry
run: gcloud --quiet auth configure-docker
- 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: 7200
role-session-name: examples@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Checkout Scripts Repo
uses: actions/checkout@v3
with:
path: ci-scripts
repository: pulumi/scripts
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: dev
- name: Print CLI version
run: echo "Currently Pulumi $(pulumi version) is installed"
- name: Install Go Dependencies
run: make ensure
- name: Install gotestfmt
uses: GoTestTools/gotestfmt-action@v2
with:
version: v2.5.0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Config
run: >-
mkdir -p "$HOME/.kube/"
pulumi stack -s "${{ github.sha }}-${{ github.run_number }}" -C misc/scripts/testinfra/ output --show-secrets kubeconfig >~/.kube/config
- name: Run ${{ matrix.tests-set }} Tests
run: make specific_test_set TestSet=Kubernetes
strategy:
fail-fast: false
matrix:
dotnetversion:
- 6.0.114
goversion:
- 1.21.x
nodeversion:
- 18.x
platform:
- ubuntu-latest
pythonversion:
- 3.9
linting:
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
name: lint
permissions:
contents: read
id-token: write
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: ${{matrix.nodeversion}}
registry-url: https://registry.npmjs.org
- name: Install Yarn
run: curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${{
matrix.yarn-version }}
- name: Update PATH for Yarn
run: |-
echo "$HOME/.yarn/bin" >> $GITHUB_PATH
echo "$HOME/.config/yarn/global/node_modules/.bin" >> $GITHUB_PATH
- name: Setup linting tool
run: make install
- name: Lint typescript files
run: make lint
strategy:
fail-fast: false
matrix:
nodeversion:
- 18.x
platform:
- ubuntu-latest
yarn-version:
- 1.13.0
providers:
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
name: run-provider-tests
permissions:
contents: read
id-token: write
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup DotNet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{matrix.dotnetversion}}
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: ${{matrix.nodeversion}}
registry-url: https://registry.npmjs.org
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{matrix.pythonversion}}
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: ${{matrix.goversion}}
- name: Install aws-iam-authenticator
run: >-
curl -o aws-iam-authenticator
https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
sudo mv aws-iam-authenticator /usr/local/bin
- name: Install Kubectl
run: >-
curl -LO
https://storage.googleapis.com/kubernetes-release/release/$(curl -s
https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv kubectl /usr/local/bin
- name: Install + Configure Helm
run: >-
curl -o- -L
https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get |
bash
helm init -c
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v0
with:
install_components: gke-gcloud-auth-plugin
- name: Login to Google Cloud Registry
run: gcloud --quiet auth configure-docker
- 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: 7200
role-session-name: examples@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Checkout Scripts Repo
uses: actions/checkout@v3
with:
path: ci-scripts
repository: pulumi/scripts
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: dev
- name: Print CLI version
run: echo "Currently Pulumi $(pulumi version) is installed"
- name: Install Testing Dependencies
run: make ensure
- name: Install gotestfmt
uses: GoTestTools/gotestfmt-action@v2
with:
version: v2.5.0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
swap-storage: false
- name: Running ${{ matrix.clouds }}${{ matrix.languages }} Tests
run: make specific_test_set TestSet=${{ matrix.clouds }}${{ matrix.languages }}
strategy:
fail-fast: false
matrix:
clouds:
# - DigitalOcean
- Aws
# - Azure
- Gcp
# - Packet
# - EquinixMetal
# - Cloud
dotnetversion:
- 6.0.114
goversion:
- 1.21.x
languages:
# - Cs
# - Js
- Ts
# - Py
# - Fs
nodeversion:
- 18.x
platform:
- ubuntu-latest
pythonversion:
- 3.9
# python-unit-testing:
# if: github.event_name == 'repository_dispatch' ||
# github.event.pull_request.head.repo.full_name == github.repository
# name: Running ${{ matrix.source-dir }} test
# runs-on: ${{ matrix.platform }}
# steps:
# - name: Checkout Repo
# uses: actions/checkout@v3
# - name: Setup Python
# uses: actions/setup-python@v2
# with:
# python-version: ${{matrix.pythonversion}}
# - name: Install Python deps
# run: |-
# pip3 install virtualenv==20.0.23
# pip3 install pipenv
# - name: Install Pulumi CLI
# uses: pulumi/actions@v5
# with:
# pulumi-version: dev
# - name: Print CLI version
# run: echo "Currently Pulumi $(pulumi version) is installed"
# - run: |-
# python3 -m venv venv
# source venv/bin/activate
# pip3 install -r requirements.txt
# python -m unittest
# working-directory: ${{ matrix.source-dir }}
# strategy:
# fail-fast: false
# matrix:
# platform:
# - ubuntu-latest
# pythonversion:
# - 3.9
# source-dir:
# - testing-unit-py
status-checks:
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name
name: Final Status Check
needs:
# - dotnet-unit-testing
# - go-unit-testing
# - python-unit-testing
# - ts-unit-testing
# - kubernetes
- linting
- providers
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- run: echo "Ready for merge"
test-infra-destroy:
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
name: test-infra-destroy
needs: kubernetes
permissions:
contents: read
id-token: write
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup DotNet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{matrix.dotnetversion}}
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: ${{matrix.nodeversion}}
registry-url: https://registry.npmjs.org
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{matrix.pythonversion}}
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: ${{matrix.goversion}}
- name: Install aws-iam-authenticator
run: >-
curl -o aws-iam-authenticator
https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
sudo mv aws-iam-authenticator /usr/local/bin
- name: Install Kubectl
run: >-
curl -LO
https://storage.googleapis.com/kubernetes-release/release/$(curl -s
https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv kubectl /usr/local/bin
- name: Install + Configure Helm
run: >-
curl -o- -L
https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get |
bash
helm init -c
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v0
with:
install_components: gke-gcloud-auth-plugin
- name: Login to Google Cloud Registry
run: gcloud --quiet auth configure-docker
- 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: 7200
role-session-name: examples@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Checkout Scripts Repo
uses: actions/checkout@v3
with:
path: ci-scripts
repository: pulumi/scripts
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: dev
- name: Print CLI version
run: echo "Currently Pulumi $(pulumi version) is installed"
- name: Destroy test infra
run: make destroy_test_infra StackName="${{ github.sha }}-${{ github.run_number }}"
strategy:
fail-fast: false
matrix:
dotnetversion:
- 6.0.114
goversion:
- 1.21.x
nodeversion:
- 18.x
platform:
- ubuntu-latest
pythonversion:
- 3.9
test-infra-setup:
if: github.event_name == 'repository_dispatch' ||
github.event.pull_request.head.repo.full_name == github.repository
name: test-infra-setup
permissions:
contents: read
id-token: write
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup DotNet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{matrix.dotnetversion}}
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: ${{matrix.nodeversion}}
registry-url: https://registry.npmjs.org
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{matrix.pythonversion}}
- name: Install Python deps
run: |-
pip3 install virtualenv==20.0.23
pip3 install pipenv
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: ${{matrix.goversion}}
- name: Install aws-iam-authenticator
run: >-
curl -o aws-iam-authenticator
https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
sudo mv aws-iam-authenticator /usr/local/bin
- name: Install Kubectl
run: >-
curl -LO
https://storage.googleapis.com/kubernetes-release/release/$(curl -s
https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv kubectl /usr/local/bin
- name: Install + Configure Helm
run: >-
curl -o- -L
https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get |
bash
helm init -c
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
service_account: ${{ env.GOOGLE_CI_SERVICE_ACCOUNT_EMAIL }}
workload_identity_provider: projects/${{ env.GOOGLE_PROJECT_NUMBER
}}/locations/global/workloadIdentityPools/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_POOL }}/providers/${{
env.GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER }}
- name: Setup gcloud auth
uses: google-github-actions/setup-gcloud@v0
with:
install_components: gke-gcloud-auth-plugin
- name: Login to Google Cloud Registry
run: gcloud --quiet auth configure-docker
- 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: 7200
role-session-name: examples@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Checkout Scripts Repo
uses: actions/checkout@v3
with:
path: ci-scripts
repository: pulumi/scripts
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: dev
- name: Print CLI version
run: echo "Currently Pulumi $(pulumi version) is installed"
- name: Create Test Infrastructure
run: make setup_test_infra StackName="${{ github.sha }}-${{ github.run_number }}"
strategy:
fail-fast: false
matrix:
dotnetversion:
- 6.0.114
goversion:
- 1.21.x
nodeversion:
- 18.x
platform:
- ubuntu-latest
pythonversion:
- 3.9
# ts-unit-testing:
# if: github.event_name == 'repository_dispatch' ||
# github.event.pull_request.head.repo.full_name == github.repository
# name: Running ${{ matrix.source-dir }} test
# runs-on: ${{ matrix.platform }}
# steps:
# - name: Checkout Repo
# uses: actions/checkout@v4
# - name: Setup Node
# uses: actions/setup-node@v4
# with:
# node-version: ${{matrix.nodeversion}}
# registry-url: https://registry.npmjs.org
# - name: Install Pulumi CLI
# uses: pulumi/actions@v5
# with:
# pulumi-version: dev
# - name: Print CLI version
# run: echo "Currently Pulumi $(pulumi version) is installed"
# - run: |-
# npm install
# npx mocha -r ts-node/register ec2tests.ts
# npx mocha -r ts-node/register bucket_pair_test.ts
# working-directory: ${{ matrix.source-dir }}/mocha
# strategy:
# fail-fast: false
# matrix:
# nodeversion:
# - 20.x
# platform:
# - ubuntu-latest
# source-dir:
# - testing-unit-ts