Skip to content

Commit a7a4c6a

Browse files
authored
Use docker image to build Rust binaries (#4)
* Use docker image to build rust natives
1 parent 6abb13f commit a7a4c6a

File tree

1 file changed

+56
-14
lines changed

1 file changed

+56
-14
lines changed

.github/workflows/ci.yml

Lines changed: 56 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,65 @@ name: Build browser
55
on: push
66

77
jobs:
8+
browser-jni:
9+
runs-on: ubuntu-latest
10+
container: sbx320/rust-x86_64-pc-windows-gnu
11+
steps:
12+
- uses: actions/checkout@v3
13+
14+
- name: Set up Rust
15+
run: rustup target add x86_64-pc-windows-gnu
16+
17+
- name: Set up Workspace
18+
run: |
19+
mkdir -p cef/Release
20+
rm -rf java/org.eclipse.set.browser.cef.win32/res/cef
21+
mkdir -p java/org.eclipse.set.browser.cef.win32/res/cef
22+
mkdir -p java/org.eclipse.set.browser.lib/res
23+
24+
- name: Cache CEF
25+
id: cef-cache
26+
uses: actions/cache@v3
27+
with:
28+
path: |
29+
java/org.eclipse.set.browser.cef.win32/res/cef
30+
cef/Release/libcef.lib
31+
cef/Release/LICENSE.txt
32+
key: ${{ hashFiles('CEF_VERSION.txt') }}
33+
34+
- name: Download CEF
35+
if: steps.cef-cache.outputs.cache-hit != 'true'
36+
run: |
37+
VERSION=$(grep -E -v ^# ../../CEF_VERSION.txt)
38+
wget https://cef-builds.spotifycdn.com/$VERSION.tar.bz2 -O cef.tar.bz2
39+
tar xf cef.tar.bz2 $VERSION/LICENSE.txt $VERSION/Resources --strip-components 1
40+
tar xf cef.tar.bz2 $VERSION/Release/libcef.lib --strip-components 2
41+
tar xf cef.tar.bz2 --wildcards $VERSION/Release/*.dll --wildcards $VERSION/Release/*.bin --strip-components 2
42+
cp -r *.dll *.bin Resources/* LICENSE.txt ../../java/org.eclipse.set.browser.cef.win32/res/cef
43+
ls -avl ../../java/org.eclipse.set.browser.cef.win32/res/cef
44+
working-directory: cef/Release
45+
46+
- name: Build Rust
47+
run: cargo clean && cargo build --release --target x86_64-pc-windows-gnu
48+
working-directory: native
49+
50+
- name: Archive binaries
51+
uses: actions/upload-artifact@v3
52+
with:
53+
name: chromium-swt-libs
54+
path: native/target/x86_64-pc-windows-gnu/release/chromium_*.*
55+
retention-days: 1
56+
857
build:
58+
needs:
59+
- browser-jni
960
runs-on: ubuntu-latest
1061
permissions:
1162
contents: read
1263
packages: write
1364
steps:
1465
- uses: actions/checkout@v3
15-
16-
- name: Set up Rust
17-
run: rustup target add x86_64-pc-windows-gnu
1866

19-
- name: Install MinGW
20-
run: sudo apt-get install --assume-yes --no-install-recommends gcc-mingw-w64 libz-mingw-w64-dev
21-
2267
- name: Set up JDK
2368
uses: actions/setup-java@v3
2469
with:
@@ -56,14 +101,11 @@ jobs:
56101
ls -avl ../../java/org.eclipse.set.browser.cef.win32/res/cef
57102
working-directory: cef/Release
58103

59-
- name: Build Rust
60-
run: cargo clean && cargo build --release --target x86_64-pc-windows-gnu
61-
working-directory: native
62-
63-
- name: Copy binaries
64-
run: |
65-
cp native/target/x86_64-pc-windows-gnu/release/chromium_subp.exe java/org.eclipse.set.browser.lib/res/
66-
cp native/target/x86_64-pc-windows-gnu/release/chromium_jni.dll java/org.eclipse.set.browser.lib/res/
104+
- name: Fetch Rust binaries
105+
uses: actions/download-artifact@v3
106+
with:
107+
name: chromium-swt-libs
108+
path: java/org.eclipse.set.browser.lib/res/
67109

68110
- name: Set up Maven
69111
uses: stCarolas/setup-maven@07fbbe97d97ef44336b7382563d66743297e442f # v4.5

0 commit comments

Comments
 (0)