Skip to content

1.0.7

1.0.7 #8

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
# This file was contributed by [email protected] https://github.com/EdwinBetanc0urt
# 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-report-engine-service
build-app:
name: Build dist Template
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/gradle-build-action@v3
with:
gradle-version: 8.0.2
arguments: createRelease
env:
GITHUB_DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
GITHUB_DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
GITHUB_DEPLOY_REPOSITORY: ${{ secrets.DEPLOY_REPOSITORY }}
- name: Set Main Version
run: echo "MAIN_VERSION=${{ github.event.release.name }}" >> src/main/java/org/spin/base/version.properties
- name: Set Release Date
run: echo "DATE_VERSION=$(date +'%Y-%m-%d')" >> src/main/java/org/spin/base/version.properties
- name: Set Implementation Version
run: echo "IMPLEMENTATION_VERSION=${{ github.event.release.tag_name }}" >> src/main/java/org/spin/base/version.properties
- name: Upload descriptor file artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-report-engine-service.dsc
path: build/descriptors/adempiere-report-engine-service.dsc
- name: Upload dist app zip artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-report-engine-service.zip
path: build/release/adempiere-report-engine-service.zip
- name: Upload dist app zip.MD5 artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-report-engine-service.zip.MD5
path: build/release/adempiere-report-engine-service.zip.MD5
- name: Upload dist app tar artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-report-engine-service.tar
path: build/release/adempiere-report-engine-service.tar
- name: Upload dist app tar.MD5 artifact
uses: actions/upload-artifact@v4
with:
name: adempiere-report-engine-service.tar.MD5
path: build/release/adempiere-report-engine-service.tar.MD5
publish-binaries:
name: Upload Binaries adempiere-report-engine-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-report-engine-service.dsc/adempiere-report-engine-service.dsc
- name: Upload zip
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-report-engine-service.zip/adempiere-report-engine-service.zip
- name: Upload zip.MD5
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-report-engine-service.zip.MD5/adempiere-report-engine-service.zip.MD5
- name: Upload tar
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-report-engine-service.tar/adempiere-report-engine-service.tar
- name: Upload tar.MD5
uses: skx/github-action-publish-binaries@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: adempiere-report-engine-service.tar.MD5/adempiere-report-engine-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@v4
- name: Download build dist app
uses: actions/download-artifact@v4
with:
name: adempiere-report-engine-service.zip
- name: Unzip Asset
run: |
unzip adempiere-report-engine-service.zip -d docker/
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
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@v5
with:
context: .
file: docker/alpine.Dockerfile
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 multiplatform docker 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@v4
- name: Download build dist app
uses: actions/download-artifact@v4
with:
name: adempiere-report-engine-service.zip
- name: Unzip Asset
run: |
unzip adempiere-report-engine-service.zip -d docker/
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
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@v5
with:
context: .
file: docker/multiarch.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
# Check secrets to push image in docker hub registry
check-proxy-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_PROXY_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 multiplatform image in Docker Hub Registry to application
push-proxy-imame-dhr:
name: Push multiplatform proxy docker image to Docker Hub
needs:
- check-proxy-docker-secrets
# Skip step based on secret
if: needs.check-proxy-docker-secrets.outputs.is_have_secrets == 'true'
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Download descriptor app
uses: actions/download-artifact@v4
with:
name: adempiere-report-engine-service.dsc
path: docker/
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
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@v5
with:
context: .
file: docker/proxy.Dockerfile
platforms: linux/amd64,linux/amd64/v2,linux/arm64/v8
push: true
tags: |
${{ secrets.DOCKER_HUB_PROXY_REPO_NAME }}:${{ github.event.release.tag_name }}
${{ secrets.DOCKER_HUB_PROXY_REPO_NAME }}:latest