Skip to content

Commit bd13584

Browse files
Merge pull request #3 from cdivitotawela/update-release-process
Update release process
2 parents 682daa3 + 243e79e commit bd13584

File tree

2 files changed

+273
-134
lines changed

2 files changed

+273
-134
lines changed

.github/workflows/docker-promote.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Docker Promote
2+
3+
run-name: "Docker Promote ${{ github.event.release.name }}"
4+
5+
on:
6+
release:
7+
types: [released]
8+
9+
env:
10+
registry: docker.io
11+
GRADLE_OPTS: "-Dorg.gradle.parallel=true -Dorg.gradle.caching=true"
12+
13+
jobs:
14+
validate:
15+
runs-on: ubuntu-22.04
16+
env:
17+
RELEASE_NAME: "${{ github.event.release.name }}"
18+
steps:
19+
- name: Pre-process Release Name
20+
id: pre_process_release_name
21+
run: |
22+
# strip all whitespace
23+
RELEASE_NAME="${RELEASE_NAME//[[:space:]]/}"
24+
if [[ ! "$RELEASE_NAME" =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?(-.*)?$ ]]; then
25+
echo "Release name does not conform to a valid besu release format YY.M.v[-suffix], e.g. 24.8.0-RC1."
26+
exit 1
27+
fi
28+
echo "release_name=$RELEASE_NAME" >> $GITHUB_OUTPUT # Set as output using the new syntax
29+
outputs:
30+
release_name: ${{ steps.pre_process_release_name.outputs.release_name }}
31+
32+
docker-promote:
33+
needs: [validate]
34+
env:
35+
RELEASE_NAME: ${{ needs.validate.outputs.release_name }} # Use the output from the pre_process_release job
36+
runs-on: ubuntu-22.04
37+
steps:
38+
- name: Checkout
39+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
40+
41+
- name: Setup Java
42+
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
43+
with:
44+
distribution: temurin
45+
java-version: 21
46+
cache: gradle
47+
48+
- name: Login to ${{ env.registry }}
49+
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
50+
with:
51+
registry: ${{ env.registry }}
52+
username: ${{ secrets.DOCKER_USER_RW }}
53+
password: ${{ secrets.DOCKER_PASSWORD_RW }}
54+
55+
- name: Setup Gradle
56+
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
57+
with:
58+
cache-disabled: true
59+
60+
- name: Docker upload
61+
run: ./gradlew "-Prelease.releaseVersion=${{ env.RELEASE_NAME }}" "-PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }}" dockerUploadRelease
62+
63+
- name: Docker manifest
64+
run: ./gradlew "-Prelease.releaseVersion=${{ env.RELEASE_NAME }}" "-PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }}" manifestDockerRelease
65+
66+
docker-verify:
67+
needs: [validate, docker-promote]
68+
env:
69+
RELEASE_NAME: ${{ needs.validate.outputs.release_name }} # Use the output from the pre_process_release job
70+
runs-on: ubuntu-22.04
71+
permissions:
72+
contents: read
73+
actions: write
74+
steps:
75+
- name: Checkout
76+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
77+
78+
- name: Trigger container verify
79+
run: echo '{"version":"${{ env.RELEASE_NAME }}","verify-latest-version":"true"}' | gh workflow run container-verify.yml --json
80+
env:
81+
GH_TOKEN: ${{ github.token }}

0 commit comments

Comments
 (0)