main #897
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
env: | |
AWS_REGION: us-west-2 | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} | |
PULUMI_API: https://api.pulumi-staging.io | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
jobs: | |
lint: | |
name: Run lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: lint | |
uses: ./.github/actions/lint | |
build: | |
name: Build and Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: build | |
uses: ./.github/actions/build | |
test: | |
# Only run tests on the schedule event | |
# On 'push' we've just merged a PR that ran the tests | |
if: github.event_name == 'schedule' | |
name: acceptance-test | |
concurrency: | |
group: acceptance-test-${{ matrix.index }} # TODO: concurrent tests across PRs can cause problems | |
cancel-in-progress: false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
# Needed for pulumictl to calculate version | |
- name: Unshallow clone for tags | |
run: git fetch --prune --unshallow --tags | |
- name: Install pulumictl | |
uses: jaxxstorm/[email protected] | |
with: | |
repo: pulumi/pulumictl | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
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: 3600 | |
role-session-name: ${{ env.PROVIDER }}@githubActions | |
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }} | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
registry-url: https://registry.npmjs.org | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
cache-dependency-path: examples/*.sum | |
- name: Install Yarn | |
run: curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.13.0 | |
- name: Install packages | |
run: yarn install --frozen-lockfile | |
- name: Run build | |
run: yarn run set-version && yarn run build | |
- name: yarn link | |
run: yarn link | |
- name: set script-shell | |
run: yarn config set script-shell /bin/bash | |
- name: Install gotestsum | |
run: go install gotest.tools/gotestsum@latest | |
- name: Go mod download | |
run: cd examples && go mod download | |
- name: Generate go test Slice | |
id: test_split | |
uses: hashicorp-forge/[email protected] | |
with: | |
working-directory: examples | |
total: ${{ matrix.parallel }} | |
index: ${{ matrix.index }} | |
- name: Run examples | |
run: cd examples && gotestsum --format github-actions -- -v -count=1 -timeout 2h -parallel 4 -run "${{ steps.test_split.outputs.run }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
parallel: [3] | |
index: [0, 1, 2] | |
release: | |
if: github.event_name == 'push' | |
name: Release | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
- lint | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
# Needed for pulumictl to calculate version | |
- name: Unshallow clone for tags | |
run: git fetch --prune --unshallow --tags | |
- name: Install pulumictl | |
uses: jaxxstorm/[email protected] | |
with: | |
repo: pulumi/pulumictl | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18.x | |
registry-url: https://registry.npmjs.org | |
- name: Install Yarn | |
run: curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.13.0 | |
- name: Install packages | |
run: yarn install --frozen-lockfile | |
- name: Run build | |
run: yarn run set-version && yarn run build | |
- if: github.event_name == 'push' | |
name: Publish Dev Package | |
uses: JS-DevTools/npm-publish@v1 | |
with: | |
access: "public" | |
token: ${{ secrets.NPM_TOKEN }} | |
package: ${{github.workspace}}/package.json | |
tag: dev | |
check-version: true | |
name: main | |
"on": | |
schedule: | |
- cron: '0 7 * * *' | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- CHANGELOG.md | |
tags-ignore: | |
- v* | |
- sdk/* | |
- '**' |