Skip to content

🎨 Clean up import statements and improve code formatting in Direc… #878

🎨 Clean up import statements and improve code formatting in Direc…

🎨 Clean up import statements and improve code formatting in Direc… #878

Workflow file for this run

name: Snapshot Release
on:
push:
branches:
- "*" # All branches for snapshot builds
tags-ignore:
- "*" # Ignore all tags
paths:
- "**/*.java" # Trigger on any Java file change
- "**/*.xml" # Trigger on any xml file change
- "**/Dockerfile*" # Trigger on any Dockerfile change
jobs:
# Build and test the project
build:
if: "!contains(github.event.head_commit.message, 'skip ci')"
runs-on: ubuntu-24.04
strategy:
matrix:
mongodb-version: ["5.0", "6.0"]
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
cache: "maven"
- name: Build and Test
run: mvn -B clean verify -Dmongodb.version="${{ matrix.mongodb-version }}"
# Deploy the project to Maven Central and DockerHub
deploy:
if: "!contains(github.event.head_commit.message, 'skip ci')"
runs-on: ubuntu-22.04
strategy:
matrix:
mongodb-version: ["7.0"]
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
cache: "maven"
- name: Set SHA
id: vars
run: |
echo "SHA=$(echo ${GITHUB_SHA:0:7})" >> $GITHUB_ENV
- name: Import private gpg key
run: |
printf "%s" "$GPG_PRIVATE_KEY" > private.key
gpg --pinentry-mode=loopback --batch --yes --fast-import private.key
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
- name: Deploy to Maven Central
run: |
MAVEN_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED" \
mvn -B deploy -Pdeploy -Dmongodb.version="${{ matrix.mongodb-version }}" -s settings.xml
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and Push multi-arch Docker images
uses: docker/build-push-action@v6
with:
context: ./core/
platforms: |
linux/amd64,
linux/arm64,
linux/ppc64le,
linux/s390x
push: true # push all images built
pull: true # pull all required images before building
# Tag with "latest" only if branch is master
tags: |
softinstigate/restheart-snapshot:${{ env.SHA }},
${{ github.ref == 'refs/heads/master' && 'softinstigate/restheart-snapshot:latest' || '' }}
- name: Build and Push GraalVM Docker image
uses: docker/build-push-action@v6
with:
context: ./core/
file: ./core/Dockerfile.graalvm
platforms: |
linux/amd64,
linux/arm64
push: true # push all images built
pull: true # pull all required images before building
# Tag with "graalvm" only if branch is master
tags: |
softinstigate/restheart-snapshot:${{ env.SHA }}-graalvm,
${{ github.ref == 'refs/heads/master' && 'softinstigate/restheart-snapshot:latest-graalvm' || '' }}
- name: Build and Push distroless docker image
uses: docker/build-push-action@v6
with:
context: ./core/
file: ./core/Dockerfile.distroless
platforms: |
linux/amd64,
linux/arm64,
linux/ppc64le
push: true # push all images built
pull: true # pull all required images before building
# Tag with "distroless" only if branch is master
tags: |
softinstigate/restheart-snapshot:${{ env.SHA }}-distroless,
${{ github.ref == 'refs/heads/master' && 'softinstigate/restheart-snapshot:latest-distroless' || '' }}