-
Notifications
You must be signed in to change notification settings - Fork 23
137 lines (132 loc) · 3.98 KB
/
microshed-ci.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
name: MicroShed CI
on:
push:
pull_request:
branches:
- master
types: [opened, synchronize, reopened, ready_for_review]
paths-ignore:
- '.gitignore'
- '.dockerignore'
- '*.md'
- '*.adoc'
- '*.txt'
- '.github/ISSUE_TEMPLATE/**'
env:
LANG: en_US.UTF-8
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
java: [ 11 ]
fail-fast: false
max-parallel: 4
name: Build ${{ matrix.java }}, ${{ matrix.os }}
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'zulu'
- name: Apply repository caches
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/modules-2
!~/.gradle/caches/modules-2/org.microshed*
~/.gradle/wrapper
~/.m2/repository/
!~/.m2/repository/org/microshed/
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build with Gradle
run: |
chmod +x gradlew
./gradlew assemble testClasses
integration_tests:
environment: default
name: Tests - ${{matrix.category}}
runs-on: ubuntu-latest
needs: build
timeout-minutes: 20
strategy:
fail-fast: false
max-parallel: 18
matrix:
include:
- category: JAXRS
projects: >
jaxrs-json
jaxrs-basicauth
jaxrs-mpjwt
everything-app
- category: GENERAL
projects: >
maven-app
everything-app
jdbc-app
kafka-app
- category: LIBERTY/PAYARA
projects: >
liberty-app
payara-app
- category: QUARKUS/WILDFLY
projects: >
quarkus-app
wildfly-app
steps:
- uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'zulu'
- name: Apply repository caches
uses: actions/cache@v2
with:
path: |
~/.gradle/caches/modules-2
!~/.gradle/caches/modules-2/org.microshed*
~/.gradle/wrapper
~/.m2/repository/
!~/.m2/repository/org/microshed/
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Setup docker host
run: echo "DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock" >> "$GITHUB_ENV"
- name: Check podman
run: docker version
- name: Set up testcontainers for podman
run: |
echo ryuk.container.privileged=true > ~/.testcontainers.properties
- name: Login to Docker Hub
uses: redhat-actions/podman-login@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
registry: docker.io
- name: Run integration tests
shell: bash
env:
TEST_PROJECTS: ${{matrix.projects}}
CATEGORY: ${{matrix.category}}
run: |
chmod +x gradlew
echo "org.gradle.daemon=false" >> gradle.properties
echo "Will be running projects $TEST_PROJECTS"
for TEST_PROJECT in $TEST_PROJECTS
do
if [[ ! -d "sample-apps/$TEST_PROJECT" ]]; then
echo "::error::Test project $TEST_PROJECT does not exist.";
exit 1;
fi
echo "### BEGIN running test project $TEST_PROJECT"
./gradlew :microshed-testing-$TEST_PROJECT:test
echo "### END running test project $TEST_PROJECT";
done
echo "Done running all tests."