Skip to content

Commit ee4e437

Browse files
committed
Add GHA release flow
1 parent 84ba420 commit ee4e437

File tree

7 files changed

+161
-13
lines changed

7 files changed

+161
-13
lines changed

.github/workflows/publish-perf-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,4 @@ jobs:
6565
event-type: new_snapshot
6666
client-payload: >-
6767
{"archive_url" : "https://github.com/rabbitmq/rabbitmq-java-tools-binaries-dev/releases/download/${{ env.tag_name }}/perf-test-${{ env.release_version}}.jar",
68-
"tags": "pivotalrabbitmq/perf-test:dev,pivotalrabbitmq/perf-test:dev-${{ env.tag_name }}"}
68+
"tags": "pivotalrabbitmq/perf-test:dev,pivotalrabbitmq/perf-test:dev-${{ env.release_version }}"}

.github/workflows/release.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Release PerfTest
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
build:
8+
runs-on: ubuntu-22.04
9+
10+
steps:
11+
- uses: actions/checkout@v4
12+
- name: Evaluate release type
13+
run: ci/evaluate-release.sh
14+
- name: Set up JDK
15+
uses: actions/setup-java@v3
16+
with:
17+
distribution: 'temurin'
18+
java-version: '11'
19+
cache: 'maven'
20+
server-id: ${{ env.maven_server_id }}
21+
server-username: MAVEN_USERNAME
22+
server-password: MAVEN_PASSWORD
23+
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
24+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
25+
- name: Release PerfTest (GA)
26+
if: ${{ env.ga_release == 'true' }}
27+
run: |
28+
git config user.name "rabbitmq-ci"
29+
git config user.email "[email protected]"
30+
ci/release-perf-test.sh
31+
env:
32+
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
33+
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
34+
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
35+
- name: Release PerfTest (Milestone/RC)
36+
if: ${{ env.ga_release != 'true' }}
37+
run: |
38+
git config user.name "rabbitmq-ci"
39+
git config user.email "[email protected]"
40+
ci/release-perf-test.sh
41+
env:
42+
MAVEN_USERNAME: ''
43+
MAVEN_PASSWORD: ${{ secrets.PACKAGECLOUD_TOKEN }}
44+
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
45+
- name: Package Perf Test
46+
run: ci/package-perf-test.sh
47+
env:
48+
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
49+
- name: Push to GitHub Release (GA)
50+
uses: softprops/action-gh-release@v1
51+
with:
52+
files: packages/*
53+
name: ${{ env.release_name }}
54+
tag_name: ${{ env.tag_name }}
55+
target_commitish: ${{ env.release_branch }}
56+
prerelease: ${{ env.prerelease }}
57+
token: ${{ secrets.CI_GITHUB_TOKEN }}
58+
repository: rabbitmq/rabbitmq-perf-test
59+
- name: Trigger Perf Test Docker image build (GA)
60+
uses: peter-evans/repository-dispatch@v2
61+
if: ${{ env.ga_release == 'true' }}
62+
with:
63+
event-type: new_snapshot
64+
client-payload: >-
65+
{"archive_url" : "https://github.com/rabbitmq/rabbitmq-perf-test/releases/download/${{ env.tag_name }}/perf-test-${{ env.release_version}}.jar",
66+
"tags": "pivotalrabbitmq/perf-test:latest,pivotalrabbitmq/perf-test:${{ env.release_version }}"}
67+
- name: Trigger Perf Test Docker image build (Milestone/RC)
68+
uses: peter-evans/repository-dispatch@v2
69+
if: ${{ env.ga_release != 'true' }}
70+
with:
71+
event-type: new_snapshot
72+
client-payload: >-
73+
{"archive_url" : "https://github.com/rabbitmq/rabbitmq-perf-test/releases/download/${{ env.tag_name }}/perf-test-${{ env.release_version}}.jar",
74+
"tags": "pivotalrabbitmq/perf-test:${{ env.release_version }}"}
75+
- name: Generate documentation
76+
run: |
77+
rm -rf target/generated-docs
78+
make doc
79+
- name: Publish documentation to GitHub Pages
80+
run: |
81+
git config user.name "rabbitmq-ci"
82+
git config user.email "[email protected]"
83+
ci/publish-documentation-to-github-pages.sh
84+
- name: Prepare worker
85+
if: ${{ env.ga_release == 'true' }}
86+
run: |
87+
mkdir ci/worker/public
88+
cp target/generated-docs/index.html ci/worker/public
89+
- name: Publish documentation to Cloudflare (GA)
90+
uses: cloudflare/[email protected]
91+
if: ${{ env.ga_release == 'true' }}
92+
with:
93+
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
94+
preCommands: npm i -D @cloudflare/kv-asset-handler
95+
command: deploy --name perftest --route https://perftest.rabbitmq.com/*
96+
workingDirectory: 'ci/worker'

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ jobs:
7979
event-type: new_snapshot
8080
client-payload: >-
8181
{"archive_url" : "https://github.com/rabbitmq/rabbitmq-java-tools-binaries-dev/releases/download/${{ env.tag_name }}/perf-test-${{ env.release_version}}.jar",
82-
"tags": "pivotalrabbitmq/perf-test:dev,pivotalrabbitmq/perf-test:dev-${{ env.tag_name }}"}
82+
"tags": "pivotalrabbitmq/perf-test:dev,pivotalrabbitmq/perf-test:dev-${{ env.release_version }}"}
8383
- name: Generate documentation
8484
run: |
8585
rm -rf target/generated-docs
@@ -98,5 +98,5 @@ jobs:
9898
with:
9999
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
100100
preCommands: npm i -D @cloudflare/kv-asset-handler
101-
command: deploy
101+
command: deploy --name perftest-dev --route https://perftest-dev.rabbitmq.com/*
102102
workingDirectory: 'ci/worker'

ci/evaluate-release.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
3+
source ./release-versions.txt
4+
5+
if [[ $RELEASE_VERSION == *[RCM]* ]]
6+
then
7+
echo "prerelease=true" >> $GITHUB_ENV
8+
echo "ga_release=false" >> $GITHUB_ENV
9+
echo "maven_server_id=packagecloud-rabbitmq-maven-milestones" >> $GITHUB_ENV
10+
else
11+
echo "prerelease=false" >> $GITHUB_ENV
12+
echo "ga_release=true" >> $GITHUB_ENV
13+
echo "maven_server_id=ossrh" >> $GITHUB_ENV
14+
fi

ci/package-perf-test.sh

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
#!/usr/bin/env bash
22

3-
CURRENT_DATE=$(date --utc '+%Y%m%d-%H%M%S')
4-
RELEASE_VERSION="$(cat pom.xml | grep -oPm1 '(?<=<version>)[^<]+')-$CURRENT_DATE"
5-
FINAL_NAME="rabbitmq-perf-test-$RELEASE_VERSION"
3+
# shellcheck disable=SC2102
4+
if [[ $POM_VERSION == *[SNAPSHOT]* ]]
5+
then
6+
CURRENT_DATE=$(date --utc '+%Y%m%d-%H%M%S')
7+
RELEASE_VERSION="$(cat pom.xml | grep -oPm1 '(?<=<version>)[^<]+')-$CURRENT_DATE"
8+
FINAL_NAME="rabbitmq-perf-test-$RELEASE_VERSION"
9+
SNAPSHOT="true"
10+
else
11+
source ./release-versions.txt
12+
FINAL_NAME="rabbitmq-perf-test-$RELEASE_VERSION"
13+
fi
614

715
./mvnw package assembly:single checksum:files gpg:sign -P assemblies -DfinalName=$FINAL_NAME -DskipTests --no-transfer-progress
816

@@ -26,9 +34,14 @@ for filename in packages-latest/*; do
2634
mv $filename $filename_without_version
2735
done
2836

29-
echo "release_name=rabbitmq-perf-test-$RELEASE_VERSION" >> $GITHUB_ENV
30-
echo "release_version=$RELEASE_VERSION" >> $GITHUB_ENV
31-
echo "tag_name=v-rabbitmq-perf-test-$RELEASE_VERSION" >> $GITHUB_ENV
32-
33-
BRANCH=$(cat pom.xml | grep -oPm1 "(?<=<version>)[^<]+" | cut --delimiter=. --fields=1,2)
34-
echo "branch=$BRANCH" >> $GITHUB_ENV
37+
if [[ $SNAPSHOT = "true" ]]
38+
then
39+
echo "release_name=$RELEASE_VERSION" >> $GITHUB_ENV
40+
echo "release_version=$RELEASE_VERSION" >> $GITHUB_ENV
41+
echo "tag_name=v-rabbitmq-perf-test-$RELEASE_VERSION" >> $GITHUB_ENV
42+
else
43+
echo "release_name=rabbitmq-perf-test-$RELEASE_VERSION" >> $GITHUB_ENV
44+
echo "release_version=$RELEASE_VERSION" >> $GITHUB_ENV
45+
echo "tag_name=v$RELEASE_VERSION" >> $GITHUB_ENV
46+
echo "release_branch=$RELEASE_BRANCH" >> $GITHUB_ENV
47+
fi

ci/release-perf-test.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env bash
2+
3+
source ./release-versions.txt
4+
git checkout $RELEASE_BRANCH
5+
6+
./mvnw release:clean release:prepare -DdryRun=true -Darguments="-DskipTests" --no-transfer-progress \
7+
--batch-mode -Dtag="v$RELEASE_VERSION" \
8+
-DreleaseVersion=$RELEASE_VERSION \
9+
-DdevelopmentVersion=$DEVELOPMENT_VERSION \
10+
11+
./mvnw release:clean release:prepare -Darguments="-DskipTests" --no-transfer-progress \
12+
--batch-mode -Dtag="v$RELEASE_VERSION" \
13+
-DreleaseVersion=$RELEASE_VERSION \
14+
-DdevelopmentVersion=$DEVELOPMENT_VERSION
15+
16+
git checkout "v$RELEASE_VERSION"
17+
18+
if [[ $RELEASE_VERSION == *[RCM]* ]]
19+
then
20+
MAVEN_PROFILE="milestone"
21+
else
22+
MAVEN_PROFILE="release"
23+
fi
24+
25+
./mvnw clean deploy -P $MAVEN_PROFILE -DskipTests --no-transfer-progress

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<scm>
4242
<url>https://github.com/rabbitmq/rabbitmq-perf-test</url>
4343
<connection>scm:git:git://github.com/rabbitmq/rabbitmq-perf-test.git</connection>
44-
<developerConnection>scm:git:git@github.com:rabbitmq/rabbitmq-perf-test.git</developerConnection>
44+
<developerConnection>scm:git:https://github.com/rabbitmq/rabbitmq-perf-test.git</developerConnection>
4545
<tag>HEAD</tag>
4646
</scm>
4747

0 commit comments

Comments
 (0)