-
Notifications
You must be signed in to change notification settings - Fork 5
132 lines (112 loc) · 4.21 KB
/
continuous-integration.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
name: Continuous Integration
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
BUILD_JAVA_VERSION: 17
LATEST_JAVA_VERSION: 20
BUILD_MAVEN_VERSION: 3.9.2
OFFICEFLOOR_CONTINUOUS_INTEGRATION: true
OFFICEFLOOR_SKIP_VERSION_CHECK: true
OFFICEFLOOR_CODE_COVERAGE: false
OFFICEFLOOR_DOCKER_AVAILABLE: false
OFFICEFLOOR_AWS_AVAILABLE: false
OFFICEFLOOR_GCLOUD_AVAILABLE: true
OFFICEFLOOR_SKIP_FAILED_COSMOS_TESTS: true
jobs:
supported-java:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Maven
uses: stCarolas/setup-maven@v4.5
with:
maven-version: ${{ env.BUILD_MAVEN_VERSION }}
- name: Set up JDK ${{ env.BUILD_JAVA_VERSION }}
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ env.BUILD_JAVA_VERSION }}
- name: Restore Maven packages
uses: actions/cache/restore@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-supported-${{ secrets.CACHE_VERSION }}
- name: Full test on linux
if: startsWith(matrix.os, 'ubuntu')
run: |
echo "OFFICEFLOOR_SKIP_VERSION_CHECK=false" >> $GITHUB_ENV
echo "OFFICEFLOOR_DOCKER_AVAILABLE=true" >> $GITHUB_ENV
echo "OFFICEFLOOR_AWS_AVAILABLE=true" >> $GITHUB_ENV
echo "OFFICEFLOOR_CODE_COVERAGE=true" >> $GITHUB_ENV
- name: Continuous Integration
run: |
echo "PATH $PATH"
echo "JAVA_HOME $JAVA_HOME"
echo "OFFICEFLOOR_SKIP_VERSION_CHECK $OFFICEFLOOR_SKIP_VERSION_CHECK"
echo "OFFICEFLOOR_CODE_COVERAGE $OFFICEFLOOR_CODE_COVERAGE"
echo "OFFICEFLOOR_DOCKER_AVAILABLE $OFFICEFLOOR_DOCKER_AVAILABLE"
echo "OFFICEFLOOR_AWS_AVAILABLE $OFFICEFLOOR_AWS_AVAILABLE"
echo "OFFICEFLOOR_GCLOUD_AVAILABLE $OFFICEFLOOR_GCLOUD_AVAILABLE"
echo "OFFICEFLOOR_SKIP_FAILED_COSMOS_TESTS $OFFICEFLOOR_SKIP_FAILED_COSMOS_TESTS"
mvn -V -B -e -DskipStress clean install --file officefloor/bom/pom.xml
- name: Upload code coverage
if: startsWith(matrix.os, 'ubuntu')
run: bash <(curl -s https://codecov.io/bash)
- name: Cache Maven packages
uses: actions/cache/save@v3
if: always()
with:
path: |
~/.m2/repository/**
!~/.m2/repository/net/officefloor/**
key: ${{ runner.os }}-maven-supported-${{ secrets.CACHE_VERSION }}
latest-java:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Maven
uses: stCarolas/setup-maven@v4.5
with:
maven-version: ${{ env.BUILD_MAVEN_VERSION }}
- name: Set up JDK ${{ env.LATEST_JAVA_VERSION }}
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ env.LATEST_JAVA_VERSION }}
- name: Restore Maven packages
uses: actions/cache/restore@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-latest-${{ secrets.CACHE_VERSION }}
- name: Full test
run: |
echo "OFFICEFLOOR_DOCKER_AVAILABLE=true" >> $GITHUB_ENV
echo "OFFICEFLOOR_AWS_AVAILABLE=true" >> $GITHUB_ENV
echo "OFFICEFLOOR_GCLOUD_AVAILABLE=true" >> $GITHUB_ENV
- name: Continuous Integration
run: |
echo "PATH $PATH"
echo "JAVA_HOME $JAVA_HOME"
echo "OFFICEFLOOR_SKIP_VERSION_CHECK $OFFICEFLOOR_SKIP_VERSION_CHECK"
echo "OFFICEFLOOR_CODE_COVERAGE $OFFICEFLOOR_CODE_COVERAGE"
echo "OFFICEFLOOR_DOCKER_AVAILABLE $OFFICEFLOOR_DOCKER_AVAILABLE"
echo "OFFICEFLOOR_AWS_AVAILABLE $OFFICEFLOOR_AWS_AVAILABLE"
echo "OFFICEFLOOR_GCLOUD_AVAILABLE $OFFICEFLOOR_GCLOUD_AVAILABLE"
echo "OFFICEFLOOR_SKIP_FAILED_COSMOS_TESTS $OFFICEFLOOR_SKIP_FAILED_COSMOS_TESTS"
mvn -V -B -e -DskipStress clean install --file officefloor/bom/pom.xml
- name: Cache Maven packages
uses: actions/cache/save@v3
if: always()
with:
path: |
~/.m2/repository/**
!~/.m2/repository/net/officefloor/**
key: ${{ runner.os }}-maven-latest-${{ secrets.CACHE_VERSION }}