Repository navigation
86 lines (72 loc) · 2.7 KB
/
Copy pathci.yml
File metadata and controls
86 lines (72 loc) · 2.7 KB
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
name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
env:
# The conformance suite commit this SDK is tested against (suite 1.27, tag v1.27, for specification 1.4). Change it here only.
CONFORMANCE_REF: e35c3fa8a7b164c9f68d4fc245ebba8b4d8a1d04
# Every action is pinned to a commit SHA; the tag it was resolved from follows as a comment.
jobs:
test:
name: Unit tests (JDK ${{ matrix.java }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java: ["17", "21"]
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4.9.1
with:
distribution: temurin
# JDK 17 is the build toolchain; the last one listed runs Gradle.
java-version: |
17
${{ matrix.java }}
- uses: gradle/actions/setup-gradle@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4
- name: Build and test
run: ./gradlew build --no-daemon
conformance:
name: Conformance suite
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Check out the conformance suite
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
repository: Bynn-Intelligence/decision-node-conformance
ref: ${{ env.CONFORMANCE_REF }}
persist-credentials: false
path: conformance
- name: Python for the mock server
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.12"
- uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4.9.1
with:
distribution: temurin
java-version: "17"
- uses: gradle/actions/setup-gradle@748248ddd2a24f49513d8f472f81c3a07d4d50e1 # v4.4.4
# The Gradle task starts the suite's mock server and runs every case of every kind.
- name: Run the conformance suite
env:
DECISIONNODE_CONFORMANCE_DIR: ${{ github.workspace }}/conformance
run: ./gradlew conformance --no-daemon
# The check that runs before every release, tested with invented words; it
# needs no secret.
name-check:
name: Release name check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Test the release name check
run: python3 .github/scripts/test_check_names.py