-
Notifications
You must be signed in to change notification settings - Fork 12
147 lines (129 loc) · 5.08 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
name: CI
on:
push:
branches: [ main ]
tags: ['*']
pull_request:
permissions:
contents: write
jobs:
create-release:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'macos-latest' ]
include:
- os: macOS-latest
uploaded_filename_cmta: cmta-x86_64-apple-darwin
local_path_cmta: cmta/target/native-image/cmta
uploaded_filename_cmtc: cmtc-x86_64-apple-darwin
local_path_cmtc: cmtc/target/native-image/cmtc
- os: ubuntu-latest
uploaded_filename_cmta: cmta-x86_64-pc-linux
local_path_cmta: cmta/target/native-image/cmta
uploaded_filename_cmtc: cmtc-x86_64-pc-linux
local_path_cmtc: cmtc/target/native-image/cmtc
# - os: windows-latest
# uploaded_filename_cmta: cmta-x86_64-pc-win32.exe
# local_path_cmta: cmta\target\native-image\cmta
# uploaded_filename_cmtc: cmtc-x86_64-pc-win32.exe
# local_path_cmtc: cmtc\target\native-image\cmtc
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/')
env:
# define Java options for both official sbt and sbt-extras
JAVA_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8
JVM_OPTS: -Xms2048M -Xmx2048M -Xss6M -XX:ReservedCodeCacheSize=256M -Dfile.encoding=UTF-8
# disable automatic installation of native image
NATIVE_IMAGE_INSTALLED: true
GRAALVM_INSTALLED: false
steps:
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Checkout Course Management Tools Repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: 11
distribution: temurin
cache: 'sbt'
- name: Setup Coursier
run: |
curl -fLo coursier https://git.io/coursier-cli &&
chmod +x coursier &&
./coursier
- name: Publish Local
run: sbt publishLocal
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Package Binaries
run: |
mkdir -p course-management-tools/bin
./coursier bootstrap com.lunatech:cmta_3:${{ env.RELEASE_VERSION }} -o course-management-tools/bin/cmta --standalone --bat
./coursier bootstrap com.lunatech:cmtc_3:${{ env.RELEASE_VERSION }} -o course-management-tools/bin/cmtc --standalone --bat
zip -r course-management-tools.zip course-management-tools
if: ${{ matrix.os == 'ubuntu-latest' }}
# - run: sbt ci-release
# env:
# PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
# PGP_SECRET: ${{ secrets.PGP_SECRET }}
# SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
# SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
# if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Create Github Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: false
prerelease: false
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Upload assets to Github release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./course-management-tools.zip
asset_name: course-management-tools.zip
asset_content_type: application/zip
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Setup Windows C++ toolchain
uses: ilammy/msvc-dev-cmd@v1
if: ${{ matrix.os == 'windows-latest' }}
- name: Native image generation
shell: bash
run: |
echo $(pwd)
sbt clean nativeImage
- uses: actions/upload-artifact@v2
with:
path: ${{ matrix.local_path_cmta }}
name: ${{ matrix.uploaded_filename_cmta }}
- uses: actions/upload-artifact@v2
with:
path: ${{ matrix.local_path_cmtc }}
name: ${{ matrix.uploaded_filename_cmtc }}
- name: Upload release cmta native
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ matrix.local_path_cmta }}
asset_name: ${{ matrix.uploaded_filename_cmta }}
asset_content_type: application/zip
- name: Upload release cmtc native
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ matrix.local_path_cmtc }}
asset_name: ${{ matrix.uploaded_filename_cmtc }}
asset_content_type: application/zip