-
Notifications
You must be signed in to change notification settings - Fork 4
160 lines (135 loc) · 4.75 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
---
# kics-scan ignore
name: Pull Request CI
defaults:
run:
shell: bash
concurrency:
group: ${{ github.head_ref }}${{ github.ref }}
cancel-in-progress: true
env:
JAVA_VERSION: 17
GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
on:
pull_request:
workflow_dispatch:
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
os-type: linux
- os: macos-latest
os-type: macos
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Check Nexus access
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
run: |
curl -u $OSSRH_USERNAME:$OSSRH_TOKEN https://oss.sonatype.org/service/local/repositories/releases/content/
- name: "Validate Gradle Wrapper"
run: pwd
- name: "Checkout the repo"
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ env.GITHUB_TOKEN }}
fetch-depth: 0
- name: "Install Java ${{ env.JAVA_VERSION }}"
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: "zulu"
- name: "Gradle Build Action"
uses: gradle/gradle-build-action@v3
- name: "Install Homebrew"
if: matrix.os-type == 'macos'
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: "Install autoconf, automake, libtool"
if: matrix.os-type == 'macos'
run: |
brew install autoconf automake libtool
- name: "Install Mac ToolChain"
if: matrix.os-type == 'macos'
run: |
brew tap messense/macos-cross-toolchains
- name: "Install Linux GNU for x86_64"
if: matrix.os-type == 'macos'
run: |
rm -f '/usr/local/bin/2to3'
rm -f '/usr/local/bin/2to3-3.11'
rm -f '/usr/local/bin/2to3-3.12'
rm -f '/usr/local/bin/python3'
rm -f '/usr/local/bin/python3.11'
rm -f '/usr/local/bin/python3.12'
rm -f '/usr/local/bin/idle3'
rm -f '/usr/local/bin/idle3.11'
rm -f '/usr/local/bin/idle3.12'
rm -f '/usr/local/bin/pydoc3'
rm -f '/usr/local/bin/pydoc3.11'
rm -f '/usr/local/bin/pydoc3.12'
rm -f '/usr/local/bin/python3-config'
rm -f '/usr/local/bin/python3.11-config'
rm -f '/usr/local/bin/python3.12-config'
brew install --overwrite x86_64-unknown-linux-gnu
- name: "Install Linux GNU for aarch64"
if: matrix.os-type == 'macos'
run: |
brew install --overwrite aarch64-unknown-linux-gnu
- name: "Install Rust Targets"
if: matrix.os-type == 'macos'
run: |
rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add aarch64-linux-android
rustup target add x86_64-linux-android
rustup target add aarch64-apple-darwin
rustup target add x86_64-apple-darwin
rustup target add aarch64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-gnu
- uses: maxim-lobanov/setup-xcode@v1
if: matrix.os-type == 'macos'
with:
xcode-version: '15.0.1'
- name: "Install rust toolchain (Linux)"
if: matrix.os-type == 'linux'
run: sudo apt install rustc build-essential -y
- name: "Install rust toolchain (Macos)"
if: matrix.os-type == 'macos'
run: brew install rustup
- name: "Install wasm-pack"
run: cargo install wasm-pack
- name: "Test Kotlin code is properly formatted"
run: ./gradlew ktlintCheck
- name: "Build Check All tests"
run: ./gradlew allTests
- name: "Generate kover coverage report"
run: ./gradlew koverHtmlReport koverXmlReport
- name: "Upload coverage html"
uses: actions/upload-artifact@v3.1.2
with:
name: coverage-results-${{ matrix.os-type }}.zip
path: apollo/build/reports/kover/html
- name: "Add coverage report to PR"
id: kover
uses: mi-kas/kover-report@v1
with:
path: ${{ github.workspace }}/apollo/build/reports/kover/report.xml
token: ${{ env.GITHUB_TOKEN }}
title: Code Coverage
update-comment: true
min-coverage-overall: 90
min-coverage-changed-files: 90
coverage-counter-type: LINE
- name: "Upload the build report"
if: always()
uses: actions/upload-artifact@v3
with:
path: "**/build/reports/"
name: report-${{ matrix.os-type }}