References: https://github.com/adempiere/adempiere/issues/4323 #635
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a basic workflow to help you get started with Actions | |
# This file was contributed by Carlos Parada and Yamel Senih from ERP Consultores y Asociados, C.A. | |
# Modifications by Mario Calderon, Systemhaus Westfalia | |
# Modifications by Edwin Betancourt | |
name: ADempiere Build With ANT | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow on push or pull request events with prefix "bugfix/" or "feature/". | |
# It builds and installs always; create a database seed in Postgres only when xml migration files changed. | |
push: | |
branches: | |
- main | |
- master | |
- develop | |
- bugfix/** | |
- feature/** | |
- hotfix/** | |
- test/** | |
pull_request: | |
branches: | |
- main | |
- master | |
- develop | |
- bugfix/** | |
- feature/** | |
- hotfix/** | |
- test/** | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
# This workflow contains a single job called "build-all" | |
build-all: | |
# The type of runner that the job will run on | |
# For Linux, only Ubuntu is supported. | |
# Taking the last version. | |
runs-on: ubuntu-latest | |
# Service containers to run with `container-job` | |
services: | |
# Label used to access the service container | |
postgres: | |
# Docker Hub image | |
# Take the specific latest Postgres version that runs with latest Ubuntu version. | |
image: postgres:14.6 | |
# Provide the password for postgres | |
env: | |
POSTGRES_PASSWORD: postgres | |
ports: | |
- 5432:5432 | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
# Steps represent a sequence of tasks that will be executed as part of the job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
# Ensure a compatible version of java is used | |
- name: Setup Java JDK | |
uses: actions/setup-java@v3 | |
with: | |
# For available options: see https://github.com/actions/setup-java#supported-distributions | |
distribution: 'temurin' | |
java-version: '11.0' | |
# Deploy Tomcat-Server | |
- name: Deploy Tomcat ... | |
run: | | |
echo "Installing Tomcat version 9" | |
cd /opt | |
echo "Download Tomcat version 9- version 9.0.65" | |
wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz | |
echo "Extract Tomcat version 9" | |
tar -zxvf apache-tomcat-9.0.65.tar.gz | |
echo "Rename to tomcat" | |
mv apache-tomcat-9.0.65 tomcat | |
echo "Installing Tomcat version 9 FINISHED" | |
# Filter files to discern whether to run with or without database restore | |
# Restore due when following files are modified: migration xml files, Github action files and utils scripts. | |
- name: Discern which files changed ... | |
uses: dorny/paths-filter@v2 | |
id: changed-files | |
with: | |
filters: | | |
xml-files: | |
- 'migration/**/*.xml' | |
- '.github/workflows/*.yml' | |
# ant build | |
- 'build.xml' | |
- '**/build.xml' | |
# shell/batch files | |
- 'utils/RUN*.*' | |
# standalone libs | |
- 'lib/*-ds.xml' | |
- 'lib/*.jar' | |
- 'tools/lib/*.jar' | |
# Build ADempiere with ant, if there are changes in XML files | |
- name: Build Adempiere with database restore... | |
if: steps.changed-files.outputs.xml-files == 'true' | |
uses: ./.github/actions/adempiere-build | |
with: | |
nodbrestore: false | |
# Build ADempiere with ant, if there are no changes in XML files | |
- name: Build Adempiere without database restore... | |
if: steps.changed-files.outputs.xml-files == 'false' | |
uses: ./.github/actions/adempiere-build | |
with: | |
nodbrestore: true | |
- name: Upload Binary Files | |
uses: actions/upload-artifact@v3 | |
with: | |
name: adempiere-binary-files | |
path: adempiere/install/ | |
- name: Upload Seed | |
uses: actions/upload-artifact@v3 | |
if: steps.changed-files.outputs.xml-files == 'true' | |
with: | |
name: adempiere-postgresql-seed | |
path: adempiere/Adempiere/data/Adempiere_pg.dmp |