Skip to content

Commit aaf0405

Browse files
authored
Update GitHub Actions workflows. (#582)
This PR was automatically generated by the update-workflows-ecosystem-providers workflow in the pulumi/ci-mgmt repo, from commit 57219950805273c97b591da6e009acfbf6a74430.
1 parent f192934 commit aaf0405

File tree

5 files changed

+198
-278
lines changed

5 files changed

+198
-278
lines changed

.github/workflows/master.yml

+8-54
Original file line numberDiff line numberDiff line change
@@ -88,63 +88,16 @@ jobs:
8888
- prerequisites
8989
- test
9090
- license_check
91-
runs-on: ubuntu-latest
92-
steps:
93-
- name: Free Disk Space (Ubuntu)
94-
uses: jlumbroso/[email protected]
95-
with:
96-
# this might remove tools that are actually needed,
97-
# if set to "true" but frees about 6 GB
98-
tool-cache: false
99-
swap-storage: false
100-
- name: Checkout Repo
101-
uses: actions/checkout@v4
102-
- name: Setup tools
103-
uses: ./.github/actions/setup-tools
104-
with:
105-
tools: pulumictl, pulumicli, go
106-
- name: Configure AWS Credentials
107-
uses: aws-actions/configure-aws-credentials@v4
108-
with:
109-
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
110-
aws-region: us-east-2
111-
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
112-
role-duration-seconds: 7200
113-
role-external-id: upload-pulumi-release
114-
role-session-name: fastly@githubActions
115-
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
116-
- name: Run GoReleaser
117-
uses: goreleaser/goreleaser-action@v5
118-
env:
119-
GORELEASER_CURRENT_TAG: v${{ needs.prerequisites.outputs.version }}
120-
PROVIDER_VERSION: ${{ needs.prerequisites.outputs.version }}
121-
with:
122-
args: -p 3 -f .goreleaser.prerelease.yml --rm-dist --skip-validate --timeout
123-
60m0s
124-
version: latest
125-
126-
publish_sdk:
127-
name: publish_sdk
128-
needs:
129-
- prerequisites
130-
- publish
131-
runs-on: ubuntu-latest
132-
steps:
133-
- name: Checkout Repo
134-
uses: actions/checkout@v4
135-
- name: Setup tools
136-
uses: ./.github/actions/setup-tools
137-
with:
138-
tools: pulumicli, pulumictl, go, node, dotnet, python, java
139-
- name: Publish SDKs
140-
uses: pulumi/[email protected]
141-
with:
142-
sdk: all
143-
version: ${{ needs.prerequisites.outputs.version }}
91+
uses: ./.github/workflows/publish.yml
92+
secrets: inherit
93+
with:
94+
version: ${{ needs.prerequisites.outputs.version }}
95+
isPrerelease: true
96+
skipGoSdk: true
14497

14598
tag_release_if_labeled_needs_release:
14699
name: Tag release if labeled as needs-release
147-
needs: publish_sdk
100+
needs: publish
148101
runs-on: ubuntu-latest
149102
steps:
150103
- name: check if this commit needs release
@@ -211,6 +164,7 @@ jobs:
211164
- java
212165
name: master
213166
on:
167+
workflow_dispatch: {}
214168
push:
215169
branches:
216170
- master

.github/workflows/prerelease.yml

+6-96
Original file line numberDiff line numberDiff line change
@@ -51,89 +51,12 @@ jobs:
5151
- prerequisites
5252
- test
5353
- license_check
54-
runs-on: ubuntu-latest
55-
steps:
56-
- name: Free Disk Space (Ubuntu)
57-
uses: jlumbroso/[email protected]
58-
with:
59-
# this might remove tools that are actually needed,
60-
# if set to "true" but frees about 6 GB
61-
tool-cache: false
62-
swap-storage: false
63-
- name: Checkout Repo
64-
uses: actions/checkout@v4
65-
- name: Setup tools
66-
uses: ./.github/actions/setup-tools
67-
with:
68-
tools: pulumictl, pulumicli, go
69-
- name: Configure AWS Credentials
70-
uses: aws-actions/configure-aws-credentials@v4
71-
with:
72-
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
73-
aws-region: us-east-2
74-
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
75-
role-duration-seconds: 7200
76-
role-external-id: upload-pulumi-release
77-
role-session-name: fastly@githubActions
78-
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
79-
- name: Run GoReleaser
80-
uses: goreleaser/goreleaser-action@v5
81-
env:
82-
GORELEASER_CURRENT_TAG: v${{ needs.prerequisites.outputs.version }}
83-
PROVIDER_VERSION: ${{ needs.prerequisites.outputs.version }}
84-
with:
85-
args: -p 3 -f .goreleaser.prerelease.yml --rm-dist --skip-validate --timeout
86-
60m0s
87-
version: latest
88-
publish_sdk:
89-
name: publish_sdk
90-
needs:
91-
- prerequisites
92-
- publish
93-
runs-on: ubuntu-latest
94-
steps:
95-
- name: Checkout Repo
96-
uses: actions/checkout@v4
97-
- name: Setup tools
98-
uses: ./.github/actions/setup-tools
99-
with:
100-
tools: pulumicli, pulumictl, go, node, dotnet, python, java
101-
- name: Publish SDKs
102-
uses: pulumi/[email protected]
103-
with:
104-
sdk: all
105-
version: ${{ needs.prerequisites.outputs.version }}
106-
publish_go_sdk:
107-
name: publish_go_sdk
108-
needs:
109-
- prerequisites
110-
- publish_sdk
111-
runs-on: ubuntu-latest
112-
steps:
113-
- name: Checkout Repo
114-
uses: actions/checkout@v4
115-
- name: Download Go SDK
116-
uses: actions/download-artifact@v4
117-
with:
118-
name: go-sdk.tar.gz
119-
path: ${{ github.workspace }}/sdk/
120-
- name: Uncompress Go SDK
121-
run: tar -zxf ${{ github.workspace }}/sdk/go.tar.gz -C
122-
${{ github.workspace }}/sdk/go
123-
shell: bash
124-
- uses: pulumi/publish-go-sdk-action@v1
125-
with:
126-
repository: ${{ github.repository }}
127-
base-ref: ${{ github.sha }}
128-
source: sdk
129-
path: sdk
130-
version: ${{ needs.prerequisites.outputs.version }}
131-
additive: false
132-
# Avoid including other language SDKs & artifacts in the commit
133-
files: |
134-
go.*
135-
go/**
136-
!*.tar.gz
54+
uses: ./.github/workflows/publish.yml
55+
secrets: inherit
56+
with:
57+
version: ${{ needs.prerequisites.outputs.version }}
58+
isPrerelease: true
59+
13760
test:
13861
name: test
13962
needs:
@@ -184,19 +107,6 @@ jobs:
184107
- dotnet
185108
- go
186109
- java
187-
verify-release:
188-
name: verify-release
189-
needs:
190-
- prerequisites
191-
- publish
192-
- publish_sdk
193-
- publish_go_sdk
194-
uses: ./.github/workflows/verify-release.yml
195-
secrets: inherit
196-
with:
197-
providerVersion: ${{ needs.prerequisites.outputs.version }}
198-
# Prelease is run often but we only have 5 concurrent macos runners, so we only test after the stable release.
199-
enableMacosRunner: false
200110

201111
name: prerelease
202112
on:

.github/workflows/publish.yml

+174
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt
2+
name: Publish
3+
4+
on:
5+
workflow_call:
6+
inputs:
7+
version:
8+
required: true
9+
type: string
10+
isPrerelease:
11+
required: true
12+
type: boolean
13+
skipGoSdk:
14+
default: false
15+
type: boolean
16+
description: Skip publishing & verifying the Go SDK
17+
18+
env:
19+
IS_PRERELEASE: ${{ inputs.isPrerelease }}
20+
FASTLY_API_KEY: ${{ secrets.FASTLY_API_KEY }}
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
23+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
24+
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
25+
PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
26+
PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }}
27+
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
28+
PULUMI_API: https://api.pulumi-staging.io
29+
PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/..
30+
PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget
31+
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
32+
PYPI_USERNAME: __token__
33+
SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }}
34+
SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }}
35+
SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }}
36+
TF_APPEND_USER_AGENT: pulumi
37+
38+
jobs:
39+
publish:
40+
name: publish
41+
runs-on: ubuntu-latest
42+
steps:
43+
- name: Validate prerelease
44+
if: inputs.isPrerelease == false && (contains(inputs.version, '-') || contains(inputs.version, '+'))
45+
run: echo "Can't publish a prerelease version as a stable release. This is likely a bug in the calling workflow." && exit 1
46+
- name: Validate skipGoSdk
47+
if: inputs.skipGoSdk && inputs.isPrerelease == false
48+
run: echo "Can't skip Go SDK for stable releases. This is likely a bug in the calling workflow." && exit 1
49+
- name: Free Disk Space (Ubuntu)
50+
uses: jlumbroso/[email protected]
51+
with:
52+
# this might remove tools that are actually needed,
53+
# if set to "true" but frees about 6 GB
54+
tool-cache: false
55+
swap-storage: false
56+
- name: Checkout Repo
57+
uses: actions/checkout@v4
58+
- name: Setup tools
59+
uses: ./.github/actions/setup-tools
60+
with:
61+
tools: pulumictl, pulumicli, go
62+
- name: Configure AWS Credentials
63+
uses: aws-actions/configure-aws-credentials@v4
64+
with:
65+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
66+
aws-region: us-east-2
67+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
68+
role-duration-seconds: 7200
69+
role-external-id: upload-pulumi-release
70+
role-session-name: fastly@githubActions
71+
role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }}
72+
- name: Run GoReleaser
73+
if: inputs.isPrerelease == false
74+
uses: goreleaser/goreleaser-action@v5
75+
env:
76+
GORELEASER_CURRENT_TAG: v${{ inputs.version }}
77+
PROVIDER_VERSION: ${{ inputs.version }}
78+
with:
79+
args: -p 3 release --rm-dist --timeout 60m0s
80+
version: latest
81+
- name: Run GoReleaser (prerelease)
82+
if: inputs.isPrerelease == true
83+
uses: goreleaser/goreleaser-action@v5
84+
env:
85+
GORELEASER_CURRENT_TAG: v${{ inputs.version }}
86+
PROVIDER_VERSION: ${{ inputs.version }}
87+
with:
88+
args: -p 3 -f .goreleaser.prerelease.yml --rm-dist --skip-validate --timeout
89+
60m0s
90+
version: latest
91+
92+
publish_sdk:
93+
name: publish_sdk
94+
needs: publish
95+
runs-on: ubuntu-latest
96+
steps:
97+
- name: Checkout Repo
98+
uses: actions/checkout@v4
99+
- name: Setup tools
100+
uses: ./.github/actions/setup-tools
101+
with:
102+
tools: pulumictl, pulumicli, go, node, dotnet, python, java
103+
- name: Publish SDKs
104+
uses: pulumi/[email protected]
105+
with:
106+
sdk: all
107+
version: ${{ inputs.version }}
108+
- name: Download Go SDK
109+
uses: ./.github/actions/download-sdk
110+
with:
111+
language: go
112+
- uses: pulumi/publish-go-sdk-action@v1
113+
if: inputs.skipGoSdk == false
114+
with:
115+
repository: ${{ github.repository }}
116+
base-ref: ${{ github.sha }}
117+
source: sdk
118+
path: sdk
119+
version: ${{ inputs.version }}
120+
additive: false
121+
# Avoid including other language SDKs & artifacts in the commit
122+
files: |
123+
go.*
124+
go/**
125+
!*.tar.gz
126+
create_docs_build:
127+
name: create_docs_build
128+
needs: publish_sdk
129+
# Only run for non-prerelease, if the publish_go_sdk job was successful or skipped
130+
if: inputs.isPrerelease == false
131+
runs-on: ubuntu-latest
132+
steps:
133+
- name: Dispatch Metadata build
134+
uses: peter-evans/repository-dispatch@v3
135+
with:
136+
token: ${{ secrets.PULUMI_BOT_TOKEN }}
137+
repository: pulumi/registry
138+
event-type: resource-provider
139+
client-payload: |-
140+
{
141+
"project": "${{ github.repository }}",
142+
"project-shortname": "fastly",
143+
"ref": "${{ github.ref_name }}"
144+
}
145+
146+
clean_up_release_labels:
147+
name: Clean up release labels
148+
# Only run for non-prerelease, if the publish_go_sdk job was successful or skipped
149+
if: inputs.isPrerelease == false
150+
needs: create_docs_build
151+
152+
runs-on: ubuntu-latest
153+
steps:
154+
- name: Checkout Repo
155+
uses: actions/checkout@v4
156+
- name: Clean up release labels
157+
uses: pulumi/action-release-by-pr-label@main
158+
with:
159+
command: "clean-up-release-labels"
160+
repo: ${{ github.repository }}
161+
commit: ${{ github.sha }}
162+
env:
163+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
164+
165+
verify_release:
166+
name: verify_release
167+
needs: publish_sdk
168+
uses: ./.github/workflows/verify-release.yml
169+
secrets: inherit
170+
with:
171+
providerVersion: ${{ inputs.version }}
172+
# Prelease is run often but we only have 5 concurrent macos runners, so we only test after the stable release.
173+
enableMacosRunner: ${{ inputs.isPrerelease == false }}
174+
skipGoSdk: ${{ inputs.skipGoSdk }}

0 commit comments

Comments
 (0)