This repository was archived by the owner on Jan 24, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 30
129 lines (123 loc) · 4.53 KB
/
main.yaml
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
name: CI
on:
push:
branches: ["**"]
tags: [v*]
pull_request:
branches: ["**"]
env:
# .sbtopts specifies 8g, which is needed to import into IntelliJ, but on GH that exceeds the maximum available memory
SBT_JAVA_OPTS: -J-Xms4g -J-Xmx4g
jobs:
build:
# run on external PRs, but not on internal PRs since those will be run by push to branch
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
scala-version: ["2.12", "2.13", "3"]
target-platform: ["JVM", "JS"]
steps:
- uses: actions/checkout@v4
- uses: coursier/[email protected]
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: "temurin"
cache: "sbt"
java-version: 11
- uses: coursier/[email protected]
- name: Compile
run: sbt $SBT_JAVA_OPTS -v "compileScoped ${{ matrix.scala-version }} ${{ matrix.target-platform }}"
- name: Compile docs
if: matrix.target-platform == 'JVM'
run: sbt compileDocs
- name: Test
run: sbt $SBT_JAVA_OPTS -v "testScoped ${{ matrix.scala-version }} ${{ matrix.target-platform }}"
- name: Generate LSIF
if: matrix.target-platform == 'JVM' && matrix.scala-version == 2.13
run: cs launch com.sourcegraph:scip-java_2.13:0.8.2 -- index
- name: Install sourcegraph/src
if: matrix.target-platform == 'JVM' && matrix.scala-version == 2.13
run: yarn global add @sourcegraph/src
- name: Upload LSIF data
if: matrix.target-platform == 'JVM' && matrix.scala-version == 2.13
run: src code-intel upload -trace=3 -root . -file index.scip -github-token $GITHUB_TOKEN
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
mima:
# run on external PRs, but not on internal PRs since those will be run by push to branch
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # checkout tags so that dynver works properly (we need the version for MiMa)
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: 11
cache: "sbt"
- name: Check MiMa
run: sbt $SBT_JAVA_OPTS -v mimaReportBinaryIssues
check-formatting:
# run on external PRs, but not on internal PRs since those will be run by push to branch
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # checkout tags so that dynver works properly (we need the version for MiMa)
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: 11
cache: "sbt"
- name: Check formatting
run: sbt $SBT_JAVA_OPTS -v scalafmtCheckAll
publish:
name: Publish release
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
needs: [build]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: coursier/[email protected]
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: 11
cache: "sbt"
- name: Compile
run: sbt $SBT_JAVA_OPTS compile
- name: Publish artifacts
run: sbt $SBT_JAVA_OPTS ci-release
env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
- name: Extract version from commit message
run: |
version=${GITHUB_REF/refs\/tags\/v/}
echo "VERSION=$version" >> $GITHUB_ENV
env:
COMMIT_MSG: ${{ github.event.head_commit.message }}
- name: Publish release notes
uses: release-drafter/release-drafter@v5
with:
config-name: release-drafter.yml
publish: true
name: "v${{ env.VERSION }}"
tag: "v${{ env.VERSION }}"
version: "v${{ env.VERSION }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}