This repository has been archived by the owner on Jun 9, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
95 lines (92 loc) · 2.56 KB
/
build.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
name: build
on:
push:
paths-ignore:
- '.vscode/**'
- '.editorconfig'
- '**.md'
jobs:
build:
runs-on: ubuntu-latest
env:
PACKAGE_VERSION: 1.2.${{ github.run_number }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 8
uses: actions/setup-java@v3
with:
java-version: 8
java-package: jdk
distribution: temurin
- name: Cache binary dependencies
uses: actions/cache@v3
with:
path: |
.tmp/*
.tmp/cloc.pl
!.tmp/*.gz
!.tmp/*.xz
!.tmp/*.zip
key: bin-${{ hashFiles('build/versions.env') }}
- name: Cache Ivy dependencies
uses: actions/cache@v3
with:
path: ivy
key: ivy-${{hashFiles('ivy.xml')}}
- name: Prepare build environment
shell: bash
run: |
source build/setenv.sh
# Only way to share environment variables between steps...
echo "ANT_HOME=$ANT_HOME" >> $GITHUB_ENV
echo "PMD_HOME=$PMD_HOME" >> $GITHUB_ENV
echo "$ANT_HOME/bin" >> $GITHUB_PATH
mkdir -p ivy
if [ ! -f ivy/ivy.jar ]; then wget -nv -O ivy/ivy.jar https://repo1.maven.org/maven2/org/apache/ivy/ivy/$_IVY_VERSION/ivy-$_IVY_VERSION.jar; fi
java -jar ivy/ivy.jar -retrieve "ivy/lib/[conf]/[artifact].[ext]" -confs build
- name: Build
shell: bash
run: |
ant -noclasspath -nouserlib -noinput -logger org.apache.tools.ant.listener.AnsiColorLogger -Dverbosity=debug -f build.xml release
- name: JUnit Tests Report
if: success() || failure()
uses: dorny/test-reporter@v1
with:
name: JUnit Tests
path: tmp/junit-results.xml
reporter: java-junit
fail-on-error: true
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts
path: |
tmp/out/bin/**.*
- name: Archive logs
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: logs
path: |
build.log
retention-days: 2
- name: Archive results
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: results
path: |
tmp/junit-results
tmp/*-results.html
tmp/*-results.xml
retention-days: 8
- name: Create release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
draft: true
files: |
tmp/out/bin/**.*