forked from hapifhir/hapi-fhir
-
Notifications
You must be signed in to change notification settings - Fork 0
165 lines (129 loc) · 5.04 KB
/
pull-request.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: Pull Request Pipeline
on:
workflow_dispatch:
jobs:
# generate-module-list:
# name: Generate List of Modules to Build
# runs-on: ubuntu-latest
# outputs:
# modules_list: ${{ steps.format_modules.outputs.modules_list }}
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Generate Modules List
# id: generate_list
# uses: ./.github/actions/generate-module-list
# with:
# ignored_modules: 'hapi-fhir-bom,hapi-deployable-pom,...'
# - name: Print generated modules
# run: |
# echo "Modules list generated:"
# echo "${{ steps.generate_list.outputs.modules_list }}" | tr ',' '\n'
# - name: Format Modules List as JSON Array
# id: format_modules
# run: |
# echo "modules_list=$(echo '${{ steps.generate_list.outputs.modules_list }}' | jq -R -s -c 'split(",")')" >> $GITHUB_OUTPUT
# build-cache:
# name: Setup Cache
# runs-on: ubuntu-latest
# container:
# image: maven:3.9-eclipse-temurin-21-jammy
# timeout-minutes: 60
# env: # Define environment variables at the job level
# MAVEN_CACHE_FOLDER: $HOME/.m2/repository # Ensure the cache folder is defined here
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Setup JDK 17
# uses: actions/setup-java@v4
# with:
# distribution: "temurin"
# java-version: "17"
# - name: Build with Maven
# env:
# # JAVA_HOME_11_X64: /opt/java/openjdk
# # MAVEN_CACHE_FOLDER: /root/.m2/repository
# MAVEN_OPTS: '-Xmx1024m -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS -Duser.timezone=America/Toronto'
# run: |
# mvn install -P CI,CHECKSTYLE -Dmaven.test.skip=true -e -B \
# -Dmaven.repo.local=$MAVEN_CACHE_FOLDER \
# -Dmaven.javadoc.skip=true \
# -Dmaven.wagon.http.pool=false \
# -Dhttp.keepAlive=false \
# -Dstyle.color=always -Djansi.force=true
# - name: Cache Maven repository
# uses: actions/cache@v4
# with:
# path: ${{ env.MAVEN_CACHE_FOLDER }}
# key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
# enableCrossOsArchive: true # Enable cross-runner cache
build-modules:
name: Build Modules
runs-on: ubuntu-latest
# needs:
# - generate-module-list
# - build-cache
strategy:
matrix:
# module: ${{ fromJSON(needs.generate-module-list.outputs.modules_list) }}
module: [ "hapi-fhir-converter","hapi-fhir-validation","hapi-fhir-structures-dstu2" ]
max-parallel: 256
steps:
- name: Checkout repository
uses: actions/checkout@v4 # Ensure repository is checked out for local actions
# - name: Build Modules
# uses: ./.github/actions/build-module
# with:
# name: ${{ github.event.pull_request.head.ref }} # refers to the branch from which the pull request was created
# module: ${{ matrix.module }}
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- name: Install Docker
shell: bash
run: |
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
docker --version
- name: Create and List Maven Cache Directory
shell: bash
run: |
mkdir -p $HOME/.m2/repository
pwd
ls -al $HOME/.m2/repository
env:
MAVEN_CACHE_FOLDER: $HOME/.m2/repository # Ensure MAVEN_CACHE_FOLDER is available in this step
- name: Restore Maven Cache
uses: actions/cache@v4
with:
path: $HOME/.m2/repository # Update path to use $HOME
enableCrossOsArchive: true # Enable cross-runner cache
key: maven-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
maven-${{ runner.os }}-
- name: Verify cache was restored
shell: bash
run: |
if [ -d "$HOME/.m2/repository" ]; then
echo "Cache exists"
ls -R $HOME/.m2/repository
else
echo "Cache not found"
fi
- name: Build Maven Module
shell: bash
env:
MAVEN_CACHE_FOLDER: $HOME/.m2/repository # Update to use $HOME
MAVEN_OPTS: '-Xmx1024m -Dorg.slf4j.simpleLogger.showDateTime=true -Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss,SSS -Duser.timezone=America/Toronto'
run: |
mvn clean verify jacoco:report -pl ${{ matrix.module }} \
-P JACOCO,CI -e -B \
-Dmaven.repo.local=$MAVEN_CACHE_FOLDER \
-Dmaven.wagon.http.pool=false -Dhttp.keepAlive=false \
-Dstyle.color=always -Djansi.force=true