-
Notifications
You must be signed in to change notification settings - Fork 26
139 lines (120 loc) · 3.89 KB
/
library_java_tests.yml
File metadata and controls
139 lines (120 loc) · 3.89 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
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
# This workflow performs tests in Java.
name: Library Java tests
on:
workflow_call:
inputs:
dafny:
description: "The Dafny version to run"
required: true
type: string
regenerate-code:
description: "Regenerate code using smithy-dafny"
required: false
default: false
type: boolean
jobs:
testJava:
strategy:
matrix:
library: []
#AwsEncryptionSDK
os: [
# TODO just test on mac for now
#windows-latest,
#ubuntu-22.04,
macos-15,
]
runs-on: ${{ matrix.os }}
permissions:
id-token: write
contents: read
steps:
- name: Support longpaths
run: |
git config --global core.longpaths true
- uses: actions/checkout@v6
- name: Init Submodules
run: |
git submodule update --init libraries
git submodule update --init --recursive mpl
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v5
with:
aws-region: us-west-2
role-to-assume: arn:aws:iam::370957321024:role/GitHub-CI-Public-ESDK-Dafny-Role-us-west-2
role-session-name: JavaTests
- name: Setup Dafny
uses: ./mpl/.github/actions/setup_dafny
with:
dafny-version: ${{ inputs.dafny }}
- name: Install Smithy-Dafny codegen dependencies
uses: ./.github/actions/install_smithy_dafny_codegen_dependencies
- name: Regenerate code using smithy-dafny if necessary
if: ${{ inputs.regenerate-code }}
uses: ./.github/actions/polymorph_codegen
with:
dafny: ${{ env.DAFNY_VERSION }}
library: ${{ matrix.library }}
diff-generated-code: false
update-and-regenerate-mpl: true
- name: Setup Java 8
uses: actions/setup-java@v5
with:
distribution: "corretto"
java-version: 8
- name: Build ${{ matrix.library }} implementation
shell: bash
working-directory: ./${{ matrix.library }}
run: |
# This works because `node` is installed by default on GHA runners
CORES=$(node -e 'console.log(os.cpus().length)')
make build_java CORES=$CORES
- name: Test ${{ matrix.library }}
working-directory: ./${{ matrix.library }}
run: |
make test_java
- name: Setup Java 11
uses: actions/setup-java@v5
with:
distribution: "corretto"
java-version: 11
- name: Clean for next Java
uses: gradle/gradle-build-action@v3
with:
arguments: clean
build-root-directory: ./${{ matrix.library }}/runtimes/java
- name: Compile Java 11
uses: gradle/gradle-build-action@v3
with:
arguments: build
build-root-directory: ./${{ matrix.library }}/runtimes/java
- name: Test Java 11
uses: gradle/gradle-build-action@v3
with:
arguments: runTests
build-root-directory: ./${{ matrix.library }}/runtimes/java
- name: Setup Java 8
uses: actions/setup-java@v5
with:
distribution: "corretto"
java-version: 8
- name: Setup Java 17
uses: actions/setup-java@v5
with:
distribution: "corretto"
java-version: 17
- name: Clean for next Java
uses: gradle/gradle-build-action@v3
with:
arguments: clean
build-root-directory: ./${{ matrix.library }}/runtimes/java
- name: Compile Java 17
uses: gradle/gradle-build-action@v3
with:
arguments: build
build-root-directory: ./${{ matrix.library }}/runtimes/java
- name: Test Java 17
uses: gradle/gradle-build-action@v3
with:
arguments: runTests
build-root-directory: ./${{ matrix.library }}/runtimes/java