-
Notifications
You must be signed in to change notification settings - Fork 3
134 lines (132 loc) · 4.92 KB
/
prepare_release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: Prepare release
on:
push:
branches:
- main
workflow_dispatch:
jobs:
publish:
name: Publish pulumi-${{ matrix.provider }}-kotlin (${{ matrix.majorVersion }}) to Maven Central Repository
runs-on: [ self-hosted, active ]
strategy:
fail-fast: false
matrix:
include:
- provider: cloudflare
majorVersion: 4
- provider: cloudflare
majorVersion: 5
- provider: slack
majorVersion: 0
- provider: github
majorVersion: 5
- provider: random
majorVersion: 4
- provider: gcp
majorVersion: 6
- provider: gcp
majorVersion: 7
- provider: google-native
majorVersion: 0
- provider: aws
majorVersion: 5
- provider: aws
majorVersion: 6
- provider: aws-native
majorVersion: 0
- provider: azure
majorVersion: 5
- provider: azure-native
majorVersion: 1
- provider: azure-native
majorVersion: 2
- provider: kubernetes
majorVersion: 3
- provider: kubernetes
majorVersion: 4
- provider: nomad
majorVersion: 0
- provider: nomad
majorVersion: 2
- provider: docker
majorVersion: 3
- provider: docker
majorVersion: 4
- provider: gitlab
majorVersion: 4
- provider: gitlab
majorVersion: 5
- provider: gitlab
majorVersion: 6
- provider: digitalocean
majorVersion: 4
- provider: alicloud
majorVersion: 3
steps:
- id: provider
uses: ASzc/change-string-case-action@v5
with:
string: ${{ matrix.provider }}
- name: Check out project sources
uses: actions/checkout@v3
- name: Check if publication to Maven Central is necessary
id: check-for-release
shell: python
run: |
import os
import json
with open("src/main/resources/version-config.json") as version_config:
schemas = json.load(version_config)
versions = [
schema["kotlinVersion"] for schema in schemas
if schema["providerName"] == "${{ matrix.provider }}"
and schema["kotlinVersion"].split(".")[0] == "${{ matrix.majorVersion }}"
]
version = versions[0]
is_release = not version.endswith("-SNAPSHOT")
with open(os.environ['GITHUB_OUTPUT'], 'a') as fh:
fh.write('is_release=' + str(is_release).lower())
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: adopt
java-version: 11
- name: Publish packages
id: publish-to-maven-central
run: |
./gradlew publishPulumi${{ matrix.provider }}${{ matrix.majorVersion }}PublicationToMavenCentralRepository \
-Psigning.enabled=true \
-Psigning.key="${{ secrets.GPG_KEY }}" \
-Psigning.key.password="${{ secrets.GPG_KEY_PASSWORD }}" \
-Psonatype.username="${{ secrets.SONATYPE_USERNAME }}" \
-Psonatype.password="${{ secrets.SONATYPE_PASSWORD }}" \
-Dorg.gradle.daemon=false \
-q
- name: Rename Dokka directory before upload
run: |
file_name=$(ls ./build/libs/pulumi-${{ matrix.provider }}-kotlin-${{ matrix.majorVersion }}*-javadoc.jar | xargs -n 1 basename)
version=$(echo $file_name | sed -e "s/^pulumi-${{ matrix.provider }}-kotlin-//" -e "s/-javadoc.jar$//")
mkdir -p ./docs/${{ matrix.provider }}/$version
mv ./build/dokka/pulumi${{ steps.provider.outputs.capitalized }}${{ matrix.majorVersion }}Javadoc/* ./docs/${{ matrix.provider }}/$version
- name: Install Rclone
run: |
yum -y install unzip
curl https://rclone.org/install.sh | bash || true
- name: Configure Rclone
run: |
mkdir -p ~/.config/rclone
cp .github/workflows/rclone.conf ~/.config/rclone/rclone.conf
echo "$GCP_SERVICE_ACCOUNT_FILE" > ~/.config/gcp-key.json
env:
# pulumi-kotlin-docs service account key created manually through GCP UI and added manually to GitHub by @myhau (Michal Fudala)
GCP_SERVICE_ACCOUNT_FILE: ${{ secrets.GCP_SERVICE_ACCOUNT_FILE }}
- name: Upload Dokka artifacts
run: |
rclone copy --transfers=1024 ./docs/${{ matrix.provider }} rclone-jvm-lab:/pulumi-kotlin-docs/${{ matrix.provider }}
- name: Upload buildSrc test report
if: ${{ failure() && steps.publish-to-maven-central.outcome == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: build-src-test-report
path: ./buildSrc/build/reports/tests/test/*
retention-days: 3