Skip to content

Publish Project

Publish Project #6

Workflow file for this run

# This workflow will build a Java project with Gradle
# This file was contributed by [email protected] from ERP Consultores y Asociados, C.A
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: Publish Project
on:
release:
types:
- created
jobs:
# Build dist application adempiere-processors-service
build-app:
name: Build ADempiere Processors Service
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Set up Java JDK 11
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-package: 'jdk'
java-version: 11
architecture: x64
- name: Build with Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 8.0.2
arguments: createRelease
env:
GITHUB_DEPLOY_USER: ${{ github.actor }}
GITHUB_DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
GITHUB_DEPLOY_REPOSITORY: ${{ secrets.DEPLOY_REPOSITORY }}
- name: Upload descriptor file artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-processors-service.dsc
path: build/descriptors/adempiere-processors-service.dsc
- name: Upload dist app zip artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-processors-service.zip
path: build/release/adempiere-processors-service.zip
- name: Upload dist app zip.MD5 artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-processors-service.zip.MD5
path: build/release/adempiere-processors-service.zip.MD5
- name: Upload dist app tar artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-processors-service.tar
path: build/release/adempiere-processors-service.tar
- name: Upload dist app tar.MD5 artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-processors-service.tar.MD5
path: build/release/adempiere-processors-service.tar.MD5
publish-binaries:
name: Upload Binaries adempiere-processors-service
needs: build-app
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
- name: Upload Descriptor
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-processors-service.dsc/adempiere-processors-service.dsc
- name: Upload zip
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-processors-service.zip/adempiere-processors-service.zip
- name: Upload zip.MD5
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-processors-service.zip.MD5/adempiere-processors-service.zip.MD5
- name: Upload tar
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-processors-service.tar/adempiere-processors-service.tar
- name: Upload tar.MD5
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-processors-service.tar.MD5/adempiere-processors-service.tar.MD5
# Check secrets to push image in docker hub registry
check-docker-secrets:
name: Check if docker hub registry information was set on secrets
needs:
- build-app
runs-on: ubuntu-latest
outputs:
is_have_secrets: ${{ steps.check_secret_job.outputs.is_have_secrets }}
steps:
- id: check_secret_job
run: |
if [[ "${{ secrets.DOCKER_HUB_REPO_NAME }}" != "" && \
"${{ secrets.DOCKER_USERNAME }}" != "" && \
"${{ secrets.DOCKER_TOKEN }}" != "" ]]; \
then
echo "Secrets to use a container registry are configured in the repo"
echo "is_have_secrets=true" >> $GITHUB_OUTPUT
else
echo "Secrets to use a container registry were not configured in the repo"
echo "is_have_secrets=false" >> $GITHUB_OUTPUT
fi
# TODO: Download .tar and add docker image without uncompress
# Publish docker alpine image in Docker Hub Registry to application
push-alpine-imame-dhr:
name: Push docker alpine image to Docker Hub
needs:
- check-docker-secrets
# Skip step based on secret
if: needs.check-docker-secrets.outputs.is_have_secrets == 'true'
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Download build dist app
uses: actions/download-artifact@v3
with:
name: adempiere-processors-service.zip
- name: Unzip Asset
run: |
unzip adempiere-processors-service.zip -d docker/
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
# CONFIGURE DOCKER SECRETS INTO REPOSITORY
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Push alpine image in Docker Hub
uses: docker/build-push-action@v2
with:
context: .
file: docker/Dockerfile.alpine
push: true
tags: |
${{ secrets.DOCKER_HUB_REPO_NAME }}:alpine-${{ github.event.release.tag_name }}
${{ secrets.DOCKER_HUB_REPO_NAME }}:alpine
# TODO: Download .tar and add docker image without uncompress
# Publish docker multiplatform image in Docker Hub Registry to application
push-imame-dhr:
name: Push docker multiplatform image to Docker Hub
needs:
- check-docker-secrets
# Skip step based on secret
if: needs.check-docker-secrets.outputs.is_have_secrets == 'true'
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Download build dist app
uses: actions/download-artifact@v3
with:
name: adempiere-processors-service.zip
- name: Unzip Asset
run: |
unzip adempiere-processors-service.zip -d docker/
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
# CONFIGURE DOCKER SECRETS INTO REPOSITORY
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Push alpine image in Docker Hub
uses: docker/build-push-action@v4
with:
context: .
file: docker/Dockerfile
platforms: linux/amd64,linux/amd64/v2,linux/arm64/v8
push: true
tags: |
${{ secrets.DOCKER_HUB_REPO_NAME }}:${{ github.event.release.tag_name }}
${{ secrets.DOCKER_HUB_REPO_NAME }}:latest