name: ci on: push jobs: build: runs-on: ubuntu-22.04 steps: - name: Repository meta id: repository run: | registry=${{ github.server_url }} registry=${registry##http*://} echo "registry=${registry}" >> "$GITHUB_OUTPUT" echo "registry=${registry}" repository="$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')" repository="${repository%:main}" echo "repository=${repository}" >> "$GITHUB_OUTPUT" echo "repository=${repository}" - name: Docker meta uses: docker/metadata-action@v5 id: docker with: images: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }} - name: Login to registry uses: docker/login-action@v3 with: registry: ${{ steps.repository.outputs.registry }} username: ${{ secrets.PACKAGES_USER }} password: ${{ secrets.PACKAGES_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: buildkitd-flags: '--allow-insecure-entitlement network.host' driver-opts: network=host - name: Checkout code uses: actions/checkout@v4 - name: Install Java (OpenJDK 11) run: | sudo apt-get update sudo apt-get install -y openjdk-11-jdk echo "JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))" >> $GITHUB_ENV - name: Install Maven run: | wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz tar -xvzf apache-maven-3.9.9-bin.tar.gz sudo mv apache-maven-3.9.9 /opt/maven echo "/opt/maven/bin" >> $GITHUB_PATH - name: Update version run: | chmod +x update-version.sh ./update-version.sh git push origin HEAD:${{ github.ref_name }} - name: Extract version from pom.xml id: get-version run: | TAG=$(awk '// {count++; if(count == 2) print $0}' pom.xml | sed -n 's|.*\([^<]*\).*|\1|p') TAG=$(echo "$TAG" | tr '[:upper:]' '[:lower:]') echo "tag=$TAG" >> "$GITHUB_OUTPUT" - name: Build and push uses: docker/build-push-action@v6 with: push: true allow: network.host network: host platforms: linux/arm64 tags: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }}:${{ steps.get-version.outputs.tag }}