Skip to content

Commit

Permalink
Merge pull request hyperledger#31 from jflo/gha_docker
Browse files Browse the repository at this point in the history
Gha docker
  • Loading branch information
jflo authored Jan 9, 2024
2 parents 6a49cc1 + 55a38d1 commit 4fe2888
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 25 deletions.
27 changes: 19 additions & 8 deletions .github/workflows/artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@
name: artifacts

on:
workflow_dispatch:
release:
types:
- created
- prereleased

jobs:
artifacts:
Expand All @@ -21,18 +20,30 @@ jobs:
- name: setup gradle
uses: gradle/gradle-build-action@v2
- name: assemble distributions
run: ./gradlew assemble -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
- name: short sha
id: shortSha
run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
run:
./gradlew -Prelease.releaseVersion=${{github.ref_name}} assemble -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
- name: hashes
id: hashes
run: |
echo "zipSha=$(shasum -a 256 build/distributions/besu*.zip)" >> $GITHUB_OUTPUT
echo "tarSha=$(shasum -a 256 build/distributions/besu*.tar.gz)" >> $GITHUB_OUTPUT
- name: upload tarball
uses: actions/upload-artifact@v3
with:
name: besu-${{ steps.shortSha.outputs.sha }}.tar.gz
path: 'build/distributions/besu*.tar.gz'
- name: upload zipfile
uses: actions/upload-artifact@v3
with:
name: besu-${{ steps.shortSha.outputs.sha }}.zip
path: 'build/distributions/besu*.zip'
- name: Upload Release assets
uses: softprops/action-gh-release@v1
with:
append_body: true
files: |
build/distributions/besu*.tar.gz
build/distributions/besu*.zip
body: |
${{steps.hashes.outputs.tarSha}}
${{steps.hashes.outputs.zipSha}}
45 changes: 31 additions & 14 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
name: docker
on:
workflow_dispatch:
release:
types:
- created
- prereleased

jobs:
hadolint:
Expand All @@ -29,46 +28,64 @@ jobs:
- name: hadoLint_graalvm
run: docker run --rm -i hadolint/hadolint < docker/graalvm/Dockerfile
buildDocker:
runs-on: ubuntu-22.04
needs: hadolint
strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
- linux/arm/v6
- linux/arm/v7
- linux/arm64
- ubuntu-22.04
- [self-hosted, ARM64, macOS]
runs-on: ${{ matrix.platform }}
steps:
- name: Prepare
id: prep
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
if [ "$platform" = 'ubuntu-22.04' ]; then
echo "PLATFORM_PAIR=linux-amd64" >> $GITHUB_OUTPUT
echo "ARCH=amd64" >> $GITHUB_OUTPUT
else
echo "PLATFORM_PAIR=linux-arm64" >> $GITHUB_OUTPUT
echo "ARCH=arm64" >> $GITHUB_OUTPUT
fi
- name: Checkout Repo
uses: actions/checkout@v3
- name: short sha
id: shortSha
run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: adopt
java-version: 17
- name: setup gradle
uses: gradle/gradle-build-action@v2
- name: distDocker
- name: build image
uses: gradle/gradle-build-action@v2
with:
arguments: distDocker
- name: test image
arguments: distDocker -PdockerOrgName=${{ secrets.DOCKER_ORG }} -Prelease.releaseVersion=${{ github.ref_name }}
- name: install goss
run: |
mkdir -p docker/reports
curl -L https://github.com/aelsabbahy/goss/releases/download/v0.3.9/goss-$PLATFORM-PAIR -o ./docker/tests/goss-$PLATFORM-PAIR
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: test docker
uses: gradle/gradle-build-action@v2
env:
architecture: ${{ steps.prep.outputs.ARCH }}
with:
arguments: testDocker
arguments: testDocker -PdockerOrgName=${{ secrets.DOCKER_ORG }} -Prelease.releaseVersion=${{ github.ref_name }}
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USER_RW }}
password: ${{ secrets.DOCKER_PASSWORD_RW }}
- name: publish
run: ./gradlew --no-daemon -PdockerOrgName=${{ secrets.DOCKER_ORG }} dockerUpload
env:
architecture: ${{ steps.prep.outputs.ARCH }}
run: ./gradlew --no-daemon dockerUpload -PdockerOrgName=${{ secrets.DOCKER_ORG }} -Prelease.releaseVersion=${{ github.ref_name }}
multiArch:
needs: buildDocker
runs-on: ubuntu-22.04
steps:
- name: multi-arch docker
run: ./gradlew manifestDocker -PdockerOrgName=${{secrets.DOCKER_ORG }} -Prelease.releaseVersion=${{ github.ref_name }}
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: release besu
on:
workflow_dispatch:
release:
types: released
types: [released]
jobs:
dockerPromoteX64:
runs-on: ubuntu-22.04
Expand Down
2 changes: 0 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -750,7 +750,6 @@ task distDocker {
}

task testDocker {
dependsOn distDocker
def dockerReportsDir = "docker/reports/"

doFirst {
Expand All @@ -770,7 +769,6 @@ task testDocker {
}

task dockerUpload {
dependsOn distDocker
def architecture = System.getenv('architecture')
def image = "${dockerImageName}:${dockerBuildVersion}"
def additionalTags = []
Expand Down

0 comments on commit 4fe2888

Please sign in to comment.