Skip to content

Commit cdbf01c

Browse files
wip: Migrating circleci to github actions
1 parent 5504dc3 commit cdbf01c

File tree

2 files changed

+116
-0
lines changed

2 files changed

+116
-0
lines changed

.github/actions/ci/action.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Shared CI Workflow
2+
3+
inputs:
4+
java_version:
5+
description: 'The Java version to use.'
6+
required: true
7+
java_distribution:
8+
description: 'The Java distribution to use.'
9+
required: false
10+
default: temurin
11+
12+
runs:
13+
using: composite
14+
steps:
15+
- name: Setup Java
16+
uses: actions/setup-java@v4
17+
with:
18+
distribution: ${{ inputs.java_distribution }}
19+
java-version: ${{ inputs.java_version }}
20+
21+
- name: Copy gradle.properties
22+
shell: bash
23+
run: |
24+
cp gradle.properties.example gradle.properties
25+
26+
- name: Restore Dependencies
27+
shell: bash
28+
run: ./gradlew dependencies
29+
30+
- name: Build Jar
31+
shell: bash
32+
id: buildjar
33+
run: ./gradlew jar
34+
35+
- name: Check Style
36+
shell: bash
37+
run: ./gradlew checkstyleMain
38+
39+
- name: Run Tests
40+
if: steps.buildjar.outcome == 'success'
41+
shell: bash
42+
run: ./gradlew test

.github/workflows/build-test.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Build and Test
2+
3+
on:
4+
push:
5+
branches: [main, feat/**, abarker/**]
6+
paths-ignore:
7+
- '**.md' #Do not need to run CI for markdown changes.
8+
pull_request:
9+
branches: [main, feat/**]
10+
paths-ignore:
11+
- '**.md'
12+
13+
jobs:
14+
build-test-linux:
15+
strategy:
16+
matrix:
17+
os: [ubuntu-latest]
18+
javaversion: [8, 11, 17, 19]
19+
runs-on: ${{ matrix.os }}
20+
steps:
21+
- uses: actions/checkout@v3
22+
23+
- name: Shared CI Steps
24+
uses: ./.github/actions/ci
25+
with:
26+
java_version: ${{ matrix.javaversion }}
27+
28+
build-test-windows:
29+
strategy:
30+
matrix:
31+
os: [windows-latest]
32+
javaversion: [11, 17]
33+
runs-on: ${{ matrix.os }}
34+
steps:
35+
- uses: actions/checkout@v3
36+
37+
- name: Shared CI Steps
38+
uses: ./.github/actions/ci
39+
with:
40+
java_version: ${{ matrix.javaversion }}
41+
42+
build-test-android:
43+
runs-on: ubuntu-22.04
44+
steps:
45+
- uses: actions/checkout@v3
46+
47+
- name: Copy Tests
48+
shell: bash
49+
run: |
50+
rsync -r ./src/test/java/ ./src/androidTest/java/ --exclude='BaseTest.java'
51+
52+
- name: Enable KVM group perms (for performance)
53+
run: |
54+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
55+
sudo udevadm control --reload-rules
56+
sudo udevadm trigger --name-match=kvm
57+
58+
- name: Run Tests
59+
uses: reactivecircus/android-emulator-runner@6b0df4b0efb23bb0ec63d881db79aefbc976e4b2
60+
with:
61+
api-level: 25
62+
target: google_apis
63+
emulator-boot-timeout: 900
64+
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
65+
disable-animations: true
66+
script: |
67+
./gradlew -b build-android.gradle :assembleAndroidTest
68+
./gradlew -b build-android.gradle :connectedAndroidTest
69+
70+
- name: Store Test Results
71+
uses: actions/upload-artifact@v4
72+
with:
73+
name: androidTest-results
74+
path: ./build/outputs/androidTest-results/*

0 commit comments

Comments
 (0)