Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade provider (upstream and terraform-plugin-sdk/v2) #201

Merged
merged 3 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .github/actions/setup-tools/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Setup tools
description: Installs Go, Pulumi, pulumictl, schema-tools, Node.JS, Python, dotnet and Java.

inputs:
tools:
description: |
Comma separated list of tools to install. The default of "all" installs all tools. Available tools are:
go
pulumicli
pulumictl
schema-tools
node
python
dotnet
java
default: all

runs:
using: "composite"
steps:
- name: Install Go
if: inputs.tools == 'all' || contains(inputs.tools, 'go')
uses: actions/setup-go@v5
with:
go-version: "1.21.x"
cache-dependency-path: |
provider/*.sum
upstream/*.sum

- name: Install pulumictl
if: inputs.tools == 'all' || contains(inputs.tools, 'pulumictl')
uses: jaxxstorm/[email protected]
with:
tag: v0.0.46
repo: pulumi/pulumictl

- name: Install Pulumi CLI
if: inputs.tools == 'all' || contains(inputs.tools, 'pulumicli')
uses: pulumi/actions@v5
with:
pulumi-version: "dev"

- name: Install Schema Tools
if: inputs.tools == 'all' || contains(inputs.tools, 'schema-tools')
uses: jaxxstorm/[email protected]
with:
repo: pulumi/schema-tools

- name: Setup Node
if: inputs.tools == 'all' || contains(inputs.tools, 'node')
uses: actions/setup-node@v4
with:
node-version: 20.x
registry-url: https://registry.npmjs.org

- name: Setup DotNet
if: inputs.tools == 'all' || contains(inputs.tools, 'dotnet')
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x

- name: Setup Python
if: inputs.tools == 'all' || contains(inputs.tools, 'python')
uses: actions/setup-python@v5
with:
python-version: 3.11.8

- name: Setup Java
if: inputs.tools == 'all' || contains(inputs.tools, 'java')
uses: actions/setup-java@v4
with:
cache: gradle
distribution: temurin
java-version: 11

- name: Setup Gradle
if: inputs.tools == 'all' || contains(inputs.tools, 'java')
uses: gradle/gradle-build-action@v3
with:
gradle-version: 7.6
61 changes: 30 additions & 31 deletions .github/workflows/build_sdk.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,33 @@
name: "Build SDK"

on:
workflow_call: {}
workflow_call:
inputs:
version:
required: true
type: string

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_API: https://api.pulumi-staging.io
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
PULUMI_MISSING_DOCS_ERROR: true
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
PYPI_USERNAME: __token__
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
TF_APPEND_USER_AGENT: pulumi
XYZ_REGION: us-west-2
PROVIDER_VERSION: ${{ inputs.version }}

jobs:
build_sdk:
Expand All @@ -19,43 +45,16 @@ jobs:
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- uses: pulumi/provider-version-action@v1
with:
set-env: 'PROVIDER_VERSION'
- name: Cache examples generation
uses: actions/cache@v4
with:
path: |
.pulumi/examples-cache
key: ${{ runner.os }}-${{ hashFiles('provider/go.sum') }}
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
tag: v0.0.46
repo: pulumi/pulumictl
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20.x
registry-url: https://registry.npmjs.org
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.11.8
- name: Setup Java
uses: actions/setup-java@v4
with:
cache: gradle
distribution: temurin
java-version: 11
- name: Setup Gradle
uses: gradle/gradle-build-action@v3
- name: Setup tools
uses: ./.github/actions/setup-tools
with:
gradle-version: 7.6
tools: pulumictl, pulumicli, go, node, dotnet, python, java
- name: Download provider + tfgen binaries
uses: actions/download-artifact@v4
with:
Expand Down
49 changes: 26 additions & 23 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,21 @@ env:
TF_APPEND_USER_AGENT: pulumi
XYZ_REGION: us-west-2
jobs:
prerequisites:
uses: ./.github/workflows/prerequisites.yml
secrets: inherit
with:
default_branch: ${{ github.event.repository.default_branch }}
is_pr: ${{ github.event_name == 'pull_request' }}
is_automated: ${{ github.actor == 'dependabot[bot]' }}

build_sdk:
name: build_sdk
needs: prerequisites
uses: ./.github/workflows/build_sdk.yml
secrets: inherit
with:
version: ${{ needs.prerequisites.outputs.version }}

generate_coverage_data:
continue-on-error: true
Expand Down Expand Up @@ -62,7 +72,7 @@ jobs:
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: "^3"
pulumi-version: "dev"
- if: github.event_name == 'pull_request'
name: Install Schema Tools
uses: jaxxstorm/[email protected]
Expand All @@ -89,17 +99,11 @@ jobs:
name: License Check
uses: ./.github/workflows/license.yml
secrets: inherit
prerequisites:
uses: ./.github/workflows/prerequisites.yml
secrets: inherit
with:
default_branch: ${{ github.event.repository.default_branch }}
is_pr: ${{ github.event_name == 'pull_request' }}
is_automated: ${{ github.actor == 'dependabot[bot]' }}

publish:
name: publish
needs:
- prerequisites
- test
- license_check
runs-on: ubuntu-latest
Expand Down Expand Up @@ -127,7 +131,7 @@ jobs:
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: "^3"
pulumi-version: "dev"
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
Expand All @@ -138,13 +142,11 @@ jobs:
role-external-id: upload-pulumi-release
role-session-name: xyz@githubActions
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
- id: version
uses: pulumi/provider-version-action@v1
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
env:
GORELEASER_CURRENT_TAG: v${{ steps.version.outputs.version }}
PROVIDER_VERSION: ${{ steps.version.outputs.version }}
GORELEASER_CURRENT_TAG: v${{ needs.prerequisites.outputs.version }}
PROVIDER_VERSION: ${{ needs.prerequisites.outputs.version }}
with:
args: -p 3 -f .goreleaser.prerelease.yml --rm-dist --skip-validate --timeout
60m0s
Expand All @@ -158,16 +160,16 @@ jobs:
status: ${{ job.status }}
publish_sdk:
name: publish_sdk
needs: publish
needs:
- prerequisites
- publish
runs-on: ubuntu-latest
steps:
- id: version
uses: pulumi/provider-version-action@v1
- name: Publish SDKs
uses: pulumi/[email protected].17
uses: pulumi/[email protected].18
with:
sdk: all
version: ${{ steps.version.outputs.version }}
version: ${{ needs.prerequisites.outputs.version }}
dotnet-version: "6.0.x"
java-version: "11"
node-version: "20.x"
Expand Down Expand Up @@ -203,17 +205,18 @@ jobs:

test:
name: test
needs: build_sdk
needs:
- prerequisites
- build_sdk
permissions:
contents: read
id-token: write
runs-on: ubuntu-latest
env:
PROVIDER_VERSION: ${{ needs.prerequisites.outputs.version }}
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- uses: pulumi/provider-version-action@v1
with:
set-env: 'PROVIDER_VERSION'
- name: Install Go
uses: actions/setup-go@v5
with:
Expand All @@ -228,7 +231,7 @@ jobs:
- name: Install Pulumi CLI
uses: pulumi/actions@v5
with:
pulumi-version: "^3"
pulumi-version: "dev"
- name: Setup Node
uses: actions/setup-node@v4
with:
Expand Down
Loading
Loading