v0.2.2 #29
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: release | |
| on: | |
| release: | |
| types: [released] | |
| env: | |
| registry: ghcr.io | |
| IMAGE_NAME: ${{ github.repository }} | |
| GRADLE_OPTS: "-Dorg.gradle.parallel=true -Dorg.gradle.caching=true" | |
| jobs: | |
| artifacts: | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write | |
| outputs: | |
| tarSha: ${{steps.hashes.outputs.tarSha}} | |
| zipSha: ${{steps.hashes.outputs.zipSha}} | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Set up Java | |
| uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| - name: setup gradle | |
| uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1 | |
| with: | |
| cache-disabled: true | |
| - name: assemble release | |
| run: | |
| ./gradlew -Prelease.releaseVersion=${{github.event.release.name}} -Pversion=${{github.event.release.name}} assemble | |
| - name: hashes | |
| id: hashes | |
| run: | | |
| cd build/distributions | |
| echo "zipSha=$(shasum -a 256 op-besu*.zip)" | |
| echo "tarSha=$(shasum -a 256 op-besu*.tar.gz)" | |
| echo "zipSha=$(shasum -a 256 op-besu*.zip)" >> $GITHUB_OUTPUT | |
| echo "tarSha=$(shasum -a 256 op-besu*.tar.gz)" >> $GITHUB_OUTPUT | |
| - name: upload tarball | |
| uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 | |
| with: | |
| path: 'build/distributions/op-besu*.tar.gz' | |
| name: op-besu-${{ github.event.release.name }}.tar.gz | |
| compression-level: 0 | |
| - name: upload zipfile | |
| uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 | |
| with: | |
| path: 'build/distributions/op-besu*.zip' | |
| name: op-besu-${{ github.event.release.name }}.zip | |
| compression-level: 0 | |
| testWindows: | |
| runs-on: windows-2022 | |
| needs: artifacts | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Set up Java | |
| uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| - name: Download zip | |
| uses: actions/download-artifact@v4 | |
| with: | |
| merge-multiple: true | |
| - name: test Besu | |
| run: | | |
| dir | |
| unzip op-besu-*.zip -d op-besu-tmp | |
| cd op-besu-tmp | |
| mv op-besu-* ../op-besu | |
| cd .. | |
| op-besu\bin\besu.bat --help | |
| op-besu\bin\besu.bat --version | |
| hadolint: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout Repo | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Set up Java | |
| uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| - name: setup gradle | |
| uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1 | |
| with: | |
| cache-disabled: true | |
| - name: hadoLint | |
| run: docker run --rm -i hadolint/hadolint < docker/Dockerfile | |
| buildAmd64Docker: | |
| needs: hadolint | |
| permissions: | |
| contents: read | |
| packages: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: | |
| - ubuntu-22.04 | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - name: Prepare | |
| id: prep | |
| run: | | |
| echo "PLATFORM_PAIR=linux-amd64" >> $GITHUB_OUTPUT | |
| echo "ARCH=amd64" >> $GITHUB_OUTPUT | |
| - name: Checkout Repo | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: short sha | |
| id: shortSha | |
| run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
| - name: Set up Java | |
| uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| - name: setup gradle | |
| uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1 | |
| with: | |
| cache-disabled: true | |
| - name: install goss | |
| run: | | |
| mkdir -p docker/reports | |
| curl -L https://github.com/aelsabbahy/goss/releases/download/v0.4.4/goss-${{ steps.prep.outputs.PLATFORM_PAIR }} -o ./docker/tests/goss-${{ steps.prep.outputs.PLATFORM_PAIR }} | |
| - name: login to ${{ env.registry }} | |
| uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d | |
| with: | |
| registry: ${{ env.registry }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: build and test docker | |
| uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1 | |
| env: | |
| architecture: ${{ steps.prep.outputs.ARCH }} | |
| with: | |
| cache-disabled: true | |
| arguments: testDocker -PdockerArtifactName=${{ env.registry }}/${{ github.repository }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }} | |
| - name: publish | |
| env: | |
| architecture: ${{ steps.prep.outputs.ARCH }} | |
| run: ./gradlew --no-daemon dockerUpload -PdockerArtifactName=${{ env.registry }}/${{ github.repository }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }} | |
| buildArm64Docker: | |
| needs: hadolint | |
| permissions: | |
| contents: read | |
| packages: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: | |
| - ubuntu-22.04 | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - name: Prepare | |
| id: prep | |
| run: | | |
| echo "PLATFORM_PAIR=linux-arm64" >> $GITHUB_OUTPUT | |
| echo "ARCH=arm64" >> $GITHUB_OUTPUT | |
| - name: Checkout Repo | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: short sha | |
| id: shortSha | |
| run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v2 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v2 | |
| - name: Set up Java | |
| uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| - name: setup gradle | |
| uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1 | |
| with: | |
| cache-disabled: true | |
| - name: install goss | |
| run: | | |
| mkdir -p docker/reports | |
| curl -L https://github.com/aelsabbahy/goss/releases/download/v0.4.4/goss-${{ steps.prep.outputs.PLATFORM_PAIR }} -o ./docker/tests/goss-${{ steps.prep.outputs.PLATFORM_PAIR }} | |
| - name: login to ${{ env.registry }} | |
| uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d | |
| with: | |
| registry: ${{ env.registry }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: publish | |
| env: | |
| architecture: ${{ steps.prep.outputs.ARCH }} | |
| run: ./gradlew --no-daemon dockerUpload -Pdocker-platform=linux/${{ steps.prep.outputs.ARCH }} -PdockerArtifactName=${{ env.registry }}/${{ github.repository }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }} | |
| multiArch: | |
| needs: [ buildAmd64Docker, buildArm64Docker ] | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout Repo | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Set up Java | |
| uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| - name: setup gradle | |
| uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1 | |
| with: | |
| cache-disabled: true | |
| - name: login to ${{ env.registry }} | |
| uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d | |
| with: | |
| registry: ${{ env.registry }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: multi-arch docker | |
| run: ./gradlew manifestDocker -PdockerArtifactName=${{ env.registry }}/${{ github.repository }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }} | |
| dockerPromoteX64: | |
| needs: multiArch | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| cache: gradle | |
| - name: login to ${{ env.registry }} | |
| uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d | |
| with: | |
| registry: ${{ env.registry }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1 | |
| with: | |
| cache-disabled: true | |
| - name: Docker upload | |
| run: ./gradlew "-Prelease.releaseVersion=${{ github.event.release.name }}" "-PdockerArtifactName=${{ env.registry }}/${{ github.repository }}" dockerUploadRelease | |
| - name: Docker manifest | |
| run: ./gradlew "-Prelease.releaseVersion=${{ github.event.release.name }}" "-PdockerArtifactName=${{ env.registry }}/${{ github.repository }}" manifestDockerRelease | |
| verifyContainer: | |
| needs: dockerPromoteX64 | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: read | |
| actions: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
| - name: Trigger container verify | |
| run: echo '{"version":"${{ github.event.release.name }}","verify-latest-version":"true"}' | gh workflow run container-verify.yml --json | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| release: | |
| name: 🚰 Release new version. | |
| needs: [ verifyContainer, artifacts ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🛎️Check out the source code | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: ⚙️Build Changelog | |
| id: github_release | |
| uses: mikepenz/release-changelog-builder-action@v4 | |
| with: | |
| configuration: ".github/config/configuration.json" | |
| commitMode: true | |
| ignorePreReleases: ${{ !contains(github.ref, '-') }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: ⏬Download all the build artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: distributions | |
| - name: ✨Github Release (version = ${{ github.event.release.name }}) | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| body: | | |
| ${{ steps.github_release.outputs.changelog }} | |
| `docker pull ${{env.registry}}/${{github.repository}}:${{github.event.release.name}}` | |
| files: | | |
| ${{ github.workspace }}/distributions/** | |
| generate_release_notes: true | |
| fail_on_unmatched_files: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |