-
Notifications
You must be signed in to change notification settings - Fork 12
140 lines (119 loc) · 4.14 KB
/
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
138
139
140
name: CI
on:
push:
branches: [ main ]
pull_request:
jobs:
build:
runs-on: macos-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Install JDK
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 22
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Build
run: >-
./gradlew
:poko-annotations:build
:poko-compiler-plugin:build
:poko-gradle-plugin:build
publishToMavenLocal
--stacktrace
env:
ORG_GRADLE_PROJECT_personalGpgKey: ${{ secrets.ORG_GRADLE_PROJECT_personalGpgKey }}
ORG_GRADLE_PROJECT_personalGpgPassword: ${{ secrets.ORG_GRADLE_PROJECT_personalGpgPassword }}
- name: Upload MavenLocal directory
uses: actions/upload-artifact@v4
with:
name: MavenLocal
path: ~/.m2/repository/dev/drewhamilton/poko/
if-no-files-found: error
- name: Test
# Builds and run tests for any not-yet-built modules, i.e. the :poko-tests modules
run: ./gradlew build --stacktrace
- name: Test without K2
# Builds and run tests for any not-yet-built modules, i.e. the :poko-tests modules
run: >-
./gradlew :poko-tests:clean build --stacktrace
-Dorg.gradle.project.pokoTests.compileMode=WITHOUT_K2
test-with-jdk:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
poko_tests_jvm_toolchain_version: [ 8, 11, 17, 21 ]
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Install JDK ${{ matrix.poko_tests_jvm_toolchain_version }}
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: |
${{ matrix.poko_tests_jvm_toolchain_version }}
22
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Test
run: >-
./gradlew :poko-tests:jvmTest --stacktrace
-Dorg.gradle.project.pokoTests.jvmToolchainVersion=${{ matrix.poko_tests_jvm_toolchain_version }}
- name: Test without K2
run: >-
./gradlew :poko-tests:jvmTest --stacktrace
-Dorg.gradle.project.pokoTests.jvmToolchainVersion=${{ matrix.poko_tests_jvm_toolchain_version }}
-Dorg.gradle.project.pokoTests.compileMode=WITHOUT_K2
test-fir-generation:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Install JDK ${{ matrix.poko_tests_jvm_toolchain_version }}
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 22
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Test
run: ./gradlew :poko-tests:build --stacktrace -Dorg.gradle.project.pokoTests.compileMode=FIR_GENERATION_ENABLED
build-sample:
runs-on: ubuntu-latest
needs: build
strategy:
fail-fast: false
matrix:
poko_sample_kotlin_version: [ ~, 2.1.10-RC, 2.1.20-Beta1 ]
env:
poko_sample_kotlin_version: ${{ matrix.poko_sample_kotlin_version }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Install JDK
uses: actions/setup-java@v4
with:
distribution: zulu
# TODO: Bump to 22 when Gradle supports Kotlin 2.0 in buildSrc
java-version: 21
- name: Download MavenLocal
uses: actions/download-artifact@v4
with:
name: MavenLocal
path: ~/.m2/repository/dev/drewhamilton/poko/
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Upgrade yarn lock
if: ${{ matrix.poko_sample_kotlin_version != null }}
run: cd sample && ./gradlew kotlinUpgradeYarnLock
- name: Build sample
run: cd sample && ./gradlew build --stacktrace
env:
GRADLE_OPTS: >-
-Dorg.gradle.configureondemand=true
-Dkotlin.incremental=false
-Dorg.gradle.jvmargs="-Xmx3g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:MaxMetaspaceSize=512m"