-
Notifications
You must be signed in to change notification settings - Fork 7
137 lines (119 loc) · 4.03 KB
/
Copy pathci.yml
File metadata and controls
137 lines (119 loc) · 4.03 KB
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
name: CI
on:
push:
branches:
- '*'
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-SNAPSHOT'
jobs:
build-jni:
permissions:
packages: write
strategy:
fail-fast: false
matrix:
os: [ linux, macos, windows ]
include:
- os: linux
image: ubuntu-latest
arch: x64
- os: macos
image: macos-latest
arch: x64
# - os: windows
# image: windows-latest
# arch: x86
- os: windows
image: windows-latest
arch: x64
runs-on: ${{ matrix.image }}
name: Build JNI for ${{ matrix.os }}-${{ matrix.arch }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set environment variables for publish
run: |
github_ref_name="${{ github.ref_name }}"
echo "UJR_VERSION=${github_ref_name:1}" >> $GITHUB_ENV
echo "UJR_PUBLISH=true" >> $GITHUB_ENV
shell: bash
if: startsWith(github.ref, 'refs/tags/v')
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 17 # Even though we target Java 8, we need Java 17 to build
distribution: temurin
architecture: ${{ matrix.arch }}
- name: Build and export JNI platform libraries
run: |
./gradlew \
'-Pujr.prebuiltNativesDir=${{ runner.temp }}/prebuilt-natives' \
-Pujr.nativeReleaseBuild=true \
-Pujr.version=${{ env.UJR_VERSION }} \
:modules:ultralight-java-reborn-platform-jni:exportPrebuiltNatives
shell: bash
- name: Upload prebuilt libraries
uses: actions/upload-artifact@v3
with:
name: ultralight-java-reborn-platform-jni-prebuilts
path: ${{ runner.temp }}/prebuilt-natives
if-no-files-found: error
retention-days: 1
build-core:
needs: [ build-jni ]
permissions:
packages: write
runs-on: ubuntu-latest
name: Build core
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Download prebuilt libraries
uses: actions/download-artifact@v3
with:
name: ultralight-java-reborn-platform-jni-prebuilts
path: ${{ runner.temp }}/prebuilt-natives
- name: Set environment variables for publish
run: |
github_ref_name="${{ github.ref_name }}"
echo "UJR_VERSION=${github_ref_name:1}" >> $GITHUB_ENV
echo "UJR_PUBLISH=true" >> $GITHUB_ENV
shell: bash
if: startsWith(github.ref, 'refs/tags/v')
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: 17 # Even though we target Java 8, we need Java 17 to build
distribution: temurin
- name: Build libraries
run: |
./gradlew \
'-Pujr.prebuiltNativesDir=${{ runner.temp }}/prebuilt-natives' \
-Pujr.importPrebuiltNatives=true \
-Pujr.version=${{ env.UJR_VERSION }} \
:modules:ultralight-java-reborn-core:build \
:modules:ultralight-java-reborn-platform-jni:build
shell: bash
- name: Upload built libraries
uses: actions/upload-artifact@v3
with:
name: ultralight-java-reborn-core
path: |
modules/core/build/libs/*.jar
modules/platform-jni/build/libs/*.jar
- name: Publish libraries
run: |
./gradlew \
-Pujr.version=${{ env.UJR_VERSION }} \
-Pujr.enableSigning=true \
'-Pujr.prebuiltNativesDir=${{ runner.temp }}/prebuilt-natives' \
-Pujr.importPrebuiltNatives=true \
publish
shell: bash
if: env.UJR_PUBLISH
env:
UJR_OSSRH_USER: ${{ secrets.UJR_OSSRH_USER }}
UJR_OSSRH_PASSWORD: ${{ secrets.UJR_OSSRH_PASSWORD }}
UJR_SIGNING_KEY: ${{ secrets.UJR_SIGNING_KEY }}
UJR_SIGNING_PASSWORD: ${{ secrets.UJR_SIGNING_PASSWORD }}