Skip to content

Merge branch 'master' into dependabot/maven/org.apache.maven.plugins-… #122

Merge branch 'master' into dependabot/maven/org.apache.maven.plugins-…

Merge branch 'master' into dependabot/maven/org.apache.maven.plugins-… #122

name: Cross-Platform C Build
on: push
env:
QEMU_IMAGE: tonistiigi/binfmt:qemu-v5.0.1
BUILD_JDK: 11
VERSION_SUFFIX: ''
jobs:
#
# show the available qemu platforms to have a list of all platforms
#
qemu_show_platform_info:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU for all platforms
id: qemu
uses: docker/setup-qemu-action@v2
with:
image: ${{ env.QEMU_IMAGE }}
platforms: all
-
name: Available platforms
run: echo ${{ steps.qemu.outputs.platforms }}
#
# build the different platforms using QEMU
#
qemu_platform_object_files:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- platform: linux/amd64
- platform: linux/arm64
- platform: linux/s390x
- platform: linux/arm/v7
#- platform: linux/arm/v6
- platform: linux/ppc64le
#- platform: linux/riscv64
#- platform: linux/386
#- platform: linux/mips64le
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU for ${{ matrix.platform }}
id: qemu
uses: docker/setup-qemu-action@v2
with:
image: ${{ env.QEMU_IMAGE }}
platforms: ${{ matrix.platform }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build on ${{ matrix.platform }}
uses: docker/build-push-action@v3
with:
context: .
platforms: ${{ matrix.platform }}
outputs: "type=tar,dest=image.tar"
-
name: Show it
run: |
ls -alR image.tar
tar -tvf image.tar
-
name: Extract shared library
run: |
tar --wildcards -xvf image.tar openssl4j/target/libopenssl4j-*.so
- uses: actions/upload-artifact@v3
with:
name: shared_objects
path: openssl4j/target/*.so
#
# deploy the openssl4j-objects artifact to github packages
#
deploy_openssl4j_objects:
needs: qemu_platform_object_files
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
uses: actions/download-artifact@v3
with:
name: shared_objects
path: openssl4j-objects/src/main/resources/objects
-
name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: ${{ env.BUILD_JDK }}
-
name: Cache local Maven repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
-
name: Set by-date version with Maven
run: mvn versions:set -DnewVersion=$(date +"%Y-%m-%d-%H-%M-%S")${{ env.VERSION_SUFFIX }}
working-directory: openssl4j-objects
-
name: Build with Maven
run: mvn -B package --file pom.xml
working-directory: openssl4j-objects
-
uses: actions/upload-artifact@v3
with:
name: openssl4j-objects
path: openssl4j-objects/target/*.jar
-
name: Publish package to Github
run: mvn -Pgithub --batch-mode deploy
working-directory: openssl4j-objects
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}