mirror of
https://github.com/vacp2p/linea-besu.git
synced 2026-01-09 21:17:54 -05:00
Improve release process
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
This commit is contained in:
71
.github/workflows/release.yml
vendored
Normal file
71
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest-128
|
||||
|
||||
steps:
|
||||
- name: Pre-process Release Name
|
||||
id: pre_process_release_name
|
||||
run: |
|
||||
RELEASE_NAME="${{ github.event.release.name }}"
|
||||
# strip all whitespace
|
||||
RELEASE_NAME="${RELEASE_NAME//[[:space:]]/}"
|
||||
if [[ ! "$RELEASE_NAME" =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?(-.*)?$ ]]; then
|
||||
echo "Release name does not conform to a valid besu release format YY.M.v[-suffix], e.g. 24.8.0-RC1."
|
||||
exit 1
|
||||
fi
|
||||
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV # Store in environment variable
|
||||
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: 21
|
||||
distribution: temurin
|
||||
|
||||
- name: Publish Java artifacts
|
||||
run: ./gradlew -Prelease.releaseVersion=${{env.RELEASE_NAME}} -Pversion=${{env.RELEASE_NAME}} publish
|
||||
env:
|
||||
CLOUDSMITH_USER: ${{ secrets.CLOUDSMITH_USER }}
|
||||
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
|
||||
|
||||
- name: Publish distribution artifacts
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y python3 python3-pip python3-venv
|
||||
./gradlew -Prelease.releaseVersion=${{env.RELEASE_NAME}} -Pversion=${{env.RELEASE_NAME}} cloudsmithUpload
|
||||
env:
|
||||
CLOUDSMITH_USER: ${{ secrets.CLOUDSMITH_USER }}
|
||||
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
|
||||
|
||||
- name: Set up QEMU for Docker
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
platforms: arm64
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
||||
- name: Check Dockerfile syntax
|
||||
run: |
|
||||
docker run --rm -i hadolint/hadolint < docker/Dockerfile
|
||||
|
||||
- name: Login to Docker Hub for self hosted
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_RW }}
|
||||
password: ${{ secrets.DOCKER_PAT_RW }}
|
||||
|
||||
- name: Build and Publish Docker Image
|
||||
run: |
|
||||
./gradlew -Prelease.releaseVersion=${{env.RELEASE_NAME}} -Pversion=${{env.RELEASE_NAME}} -Pdocker-platform=linux/amd64,linux/arm64 distDocker
|
||||
19
.github/workflows/workflow.yaml
vendored
19
.github/workflows/workflow.yaml
vendored
@@ -25,19 +25,8 @@ jobs:
|
||||
java-version: 21
|
||||
distribution: temurin
|
||||
|
||||
- name: Cache Gradle dependencies
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle/versions.gradle') }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-${{ hashFiles('**/gradle/versions.gradle') }}
|
||||
${{ runner.os }}-gradle-
|
||||
|
||||
- name: Spotless
|
||||
run: ./gradlew clean spotlessCheck
|
||||
run: ./gradlew spotlessCheck
|
||||
|
||||
- name: Test & Build
|
||||
run: ./gradlew build
|
||||
@@ -71,7 +60,7 @@ jobs:
|
||||
distribution: temurin
|
||||
|
||||
- name: Publish Java artifacts
|
||||
run: ./gradlew publish -x checkLicense
|
||||
run: ./gradlew publish
|
||||
env:
|
||||
CLOUDSMITH_USER: ${{ secrets.CLOUDSMITH_USER }}
|
||||
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
|
||||
@@ -80,7 +69,7 @@ jobs:
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y python3 python3-pip python3-venv
|
||||
./gradlew cloudsmithUpload -x checkLicense
|
||||
./gradlew cloudsmithUpload
|
||||
env:
|
||||
CLOUDSMITH_USER: ${{ secrets.CLOUDSMITH_USER }}
|
||||
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
|
||||
@@ -107,4 +96,4 @@ jobs:
|
||||
|
||||
- name: Build and Publish Docker Image
|
||||
run: |
|
||||
./gradlew -Pdocker-platform=linux/amd64,linux/arm64 distDocker -x checkLicense
|
||||
./gradlew -Pdocker-platform=linux/amd64,linux/arm64 distDocker
|
||||
|
||||
Reference in New Issue
Block a user