-
Notifications
You must be signed in to change notification settings - Fork 348
132 lines (120 loc) · 4.03 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
name: CI
on:
pull_request: {}
push:
branches:
- master
release:
types: [ published ] # Triggers the CI when a new Github Release is published
env:
# See:
# - https://stackoverflow.com/a/73708006
# - https://stackoverflow.com/questions/73465937/apache-spark-3-3-0-breaks-on-java-17-with-cannot-access-class-sun-nio-ch-direct
JDK_JAVA_OPTIONS: -Xms6G -Xmx6G -XX:+UseG1GC --add-exports java.base/sun.nio.ch=ALL-UNNAMED
jobs:
scalafmt:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Cache sbt
uses: actions/cache@v4
with:
path: |
~/.cache/coursier
~/.sbt
key: ${{ runner.os }}-${{matrix.scala}}-${{matrix.module}}-${{ hashFiles('**/build.sbt') }}
- name: Setup Java
uses: actions/[email protected]
with:
distribution: temurin
java-version: '17'
check-latest: true
- name: Setup sbt
uses: sbt/setup-sbt@v1
- name: Check scalafmt
run: sbt 'scalafmtCheckAll' # https://scalameta.org/scalafmt/docs/installation.html#task-keys
build:
runs-on: ubuntu-latest
env:
SCALA_VERSION: ${{ matrix.scala }}
POSTGRES_PASSWORD: postgres
MYSQL_PASSWORD: root
strategy:
fail-fast: false
matrix:
scala: [2.12.x, 2.13.x, 3.3.x]
module: [base, db, codegen, bigdata]
include:
- scala: 2.12.x
scala_short: 212
scala_short_dot: 2.12
- scala: 2.13.x
scala_short: 213
scala_short_dot: 2.13
- scala: 3.3.x
scala_short: 33
scala_short_dot: 3.3
exclude:
# For now, only do the `base` build for Scala 3
- scala: 3.3.x
module: db
- scala: 3.3.x
module: codegen
- scala: 3.3.x
module: bigdata
# For other modules, `base` build is already included
- scala: 2.12.x
module: base
- scala: 2.13.x
module: base
name: Build ${{matrix.scala_short_dot}} - ${{matrix.module}}
steps:
- uses: actions/[email protected]
- name: Cache sbt
uses: actions/cache@v4
with:
path: |
~/.cache/coursier
~/.sbt
key: ${{ runner.os }}-${{matrix.scala}}-${{matrix.module}}-${{ hashFiles('**/build.sbt') }}
- name: Setup Java
uses: actions/[email protected]
with:
distribution: temurin
java-version: '17'
check-latest: true
- name: Setup sbt
uses: sbt/setup-sbt@v1
- name: Build modules
run: |
echo "SCALA_VERSION='$SCALA_VERSION'"
./build/build.sh ${{ matrix.module }}
env:
SCALA_VERSION: ${{ matrix.scala }}
release_scala:
if: ${{github.event_name != 'pull_request'}}
runs-on: ubuntu-latest
needs: build
env:
CI_RELEASE: publishSigned # By default, sbt-ci-release uses the `+publishSigned` which is publishing for all the Scala versions configured, which is not what we want
CI_SNAPSHOT_RELEASE: publish # By default, sbt-ci-release uses the `+publish` which is publishing for all the Scala versions configured, which is not what we want
steps:
- uses: actions/[email protected]
- name: Setup Java
uses: actions/[email protected]
with:
distribution: temurin
java-version: '11'
check-latest: true
- name: Setup sbt
uses: sbt/setup-sbt@v1
- run: |
sbt ++2.12.x -Dquill.scala.version=2.12.x -Dquill.macro.log=false ci-release
sbt ++2.13.x -Dquill.scala.version=2.13.x -Dquill.macro.log=false ci-release
sbt ++3.3.x -Dquill.scala.version=3.3.x -Dquill.macro.log=false ci-release
env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
SONATYPE_PASSWORD: ${{ secrets.GETQUILL_SONATYPE_TOKEN_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.GETQUILL_SONATYPE_TOKEN_USER }}