forked from adempiere/adempiere
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (119 loc) · 4.54 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# 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:
- master
- develop
- bugfix/**
- feature/**
- hotfix/**
- test/**
pull_request:
branches:
- 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*.*'
# gradle build
- '**.gradle'
- '**/*.gradle'
# 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