-
-
Notifications
You must be signed in to change notification settings - Fork 64
155 lines (130 loc) · 4.9 KB
/
release.binaries.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
name: Build
on:
workflow_dispatch:
release:
types:
- created
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v3
with:
submodules: recursive
- name: Get Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Install Lein
uses: knicknic/os-specific-run@v1.0.3
with:
macos: brew install leiningen
linux: echo "lein is already installed"
- name: Run Tests then Uberjar
run: |
lein run
lein uberjar
echo "Generated JAR files:"
ls -l target/*.jar
# - name: Upload Uberjar
# uses: shogo82148/actions-upload-release-asset@v1
# with:
# upload_url: ${{ github.event.release.upload_url }}
# asset_path: target/datalevin-${{ github.event.release.tag_name }}-standalone.jar
# overwrite: true
# DEBUG
- name: Get release
id: get_release
uses: bruceadams/get-release@v1.3.2
if: github.event_name == 'release'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set release info
id: release_info
run: |
if [ "${{ github.event_name }}" = "release" ]; then
echo "upload_url=${{ steps.get_release.outputs.upload_url }}" >> $GITHUB_OUTPUT
echo "tag_name=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT
else
echo "upload_url=" >> $GITHUB_OUTPUT
echo "tag_name=latest" >> $GITHUB_OUTPUT
fi
- name: Debug release info
run: |
echo "Event name: ${{ github.event_name }}"
echo "Upload URL: ${{ steps.release_info.outputs.upload_url }}"
echo "Tag name: ${{ steps.release_info.outputs.tag_name }}"
- name: Check Variables
run:
echo steps.release_info.outputs.tag_name:${{ steps.release_info.outputs.tag_name }}
echo steps.release_info.outputs.tag_name:${{ steps.release_info.outputs.tag_name }}
# END DEBUG
- name: Upload Uberjar
uses: actions/upload-artifact@v3
# with:
# name: datalevin-standalone.jar
# path: target/*-standalone.jar
with:
name: datalevin-${{ steps.release_info.outputs.tag_name }}-standalone.jar
path: target/datalevin-${{ steps.release_info.outputs.tag_name }}-standalone.jar
- name: Setup Graalvm
uses: DeLaGuardo/setup-graalvm@master
with:
graalvm-version: '22.3.1.java11'
- name: Install Native Image
run: |
gu install native-image
- name: Build Native Datalevin
uses: knicknic/os-specific-run@v1.0.3
with:
macos: |
cd native
bash script/compile
linux: |
cd native
sudo bash script/setup-musl
bash script/compile-static
- name: Run Native Tests
run: |
native/dtlv-test0
# - name: Zip Binary
# run: |
# cd native
# 7z a -tzip dtlv-${{ github.event.release.tag_name }}-${{ matrix.os}}-amd64.zip dtlv
- name: Zip Binary
run: |
cd native
7z a -tzip dtlv-${{ steps.release_info.outputs.tag_name }}-${{ matrix.os}}-amd64.zip dtlv
# - name: Upload Binary
# uses: shogo82148/actions-upload-release-asset@v1
# with:
# upload_url: ${{ github.event.release.upload_url }}
# asset_path: native/dtlv-${{ github.event.release.tag_name }}-${{ matrix.os }}-amd64.zip
# overwrite: true
- name: Upload Binary as Artifact
uses: actions/upload-artifact@v3
with:
name: dtlv-${{ steps.release_info.outputs.tag_name }}-${{ matrix.os }}-amd64.zip
path: native/dtlv-${{ steps.release_info.outputs.tag_name }}-${{ matrix.os }}-amd64.zip
# for Forked
- name: Upload Uberjar to Release
uses: shogo82148/actions-upload-release-asset@v1
if: github.event_name == 'release'
with:
upload_url: ${{ steps.release_info.outputs.upload_url }}
asset_path: target/datalevin-${{ steps.release_info.outputs.tag_name }}-standalone.jar
asset_name: datalevin-${{ steps.release_info.outputs.tag_name }}-standalone.jar
overwrite: true
- name: Upload Binary to Release
uses: shogo82148/actions-upload-release-asset@v1
if: github.event_name == 'release'
with:
upload_url: ${{ steps.release_info.outputs.upload_url }}
asset_path: native/dtlv-${{ steps.release_info.outputs.tag_name }}-${{ matrix.os }}-amd64.zip
asset_name: dtlv-${{ steps.release_info.outputs.tag_name }}-${{ matrix.os }}-amd64.zip
overwrite: true