-
-
Notifications
You must be signed in to change notification settings - Fork 285
157 lines (148 loc) · 3.98 KB
/
release.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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: Release
on:
push:
branches: [master]
tags: ["v*"]
jobs:
publish:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Scala caches
uses: actions/cache@v4
with:
path: |
~/.sbt
~/.ivy2/cache
~/.cache/coursier
key: ${{ runner.os }}-sbt-docs-${{ hashFiles('**/*.sbt') }}
- uses: actions/setup-java@v4
with:
java-version: 8
distribution: temurin
- uses: actions/setup-node@v4
with:
node-version: '12.x'
- uses: olafurpg/setup-gpg@v3
if: startsWith(github.ref, 'refs/tags/v')
- name: Publish ${{ github.ref }}
run: sbt ci-release
env:
JAVA_OPTS: -Xmx4G -XX:+UseG1GC
JVM_OPTS: -Xmx4G -XX:+UseG1GC
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
docs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Scala caches
uses: actions/cache@v4
with:
path: |
~/.sbt
~/.ivy2/cache
~/.cache/coursier
key: ${{ runner.os }}-sbt-docs-${{ hashFiles('**/*.sbt') }}
- uses: actions/setup-java@v4
with:
java-version: 11
distribution: temurin
- uses: actions/setup-node@v4
with:
node-version: '12.x'
- name: Update docs
run: |
git config --global user.name "ScalaPB Docs"
git config --global user.email "[email protected]"
eval "$(ssh-agent -s)"
echo "$TOKEN" | ssh-add -
sbt docs/mdoc docs/unidoc
cd website
yarn install
yarn deploy
env:
TOKEN: ${{secrets.DEPLOY_KEY}}
USE_SSH: true
GIT_USER: git
scalapbc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-java@v4
with:
java-version: 8
distribution: temurin
- run: |
sbt scalapbcJVM2_12/universal:packageBin
- uses: actions/upload-artifact@v4
with:
name: scalapbc
path: scalapbc/target/jvm-2.12/universal/scalapbc-*.zip
native:
strategy:
matrix:
include:
- os: ubuntu-latest
arch: linux-x86_64
- os: macos-12
arch: osx-x86_64
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: olafurpg/setup-scala@v14
with:
java-version: [email protected]
- name: Asset name
id: vars
run: |
if [[ $GITHUB_REF = refs/tags/v* ]]; then
RELEASE_VERSION=${GITHUB_REF#refs/tags/v}
else
RELEASE_VERSION=SNAPSHOT
fi
echo "ASSET=protoc-gen-scala-${RELEASE_VERSION}-${{matrix.arch}}" >> $GITHUB_ENV
- name: build native image
run: |
set -x
gu install native-image
./make_reflect_config.sh
sbt protocGenScalaNativeImage/nativeImage
zip -j $ASSET.zip target/protoc-gen-scala
- uses: actions/upload-artifact@v4
with:
name: ${{env.ASSET}}
path: ${{env.ASSET}}.zip
gh_release:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-20.04
needs: [native, scalapbc]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Display structure of downloaded files
run: ls -R
working-directory: ./artifacts
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -x
assets=$(find ./artifacts -name "*.zip")
RELEASE_NAME=${GITHUB_REF#refs/tags/}
gh release create "$RELEASE_NAME" --generate-notes ${assets}