Skip to content

Commit cd250aa

Browse files
[CI] Merge debug and release workflows into single multi job workflow.
Allows caching downloaded tarballs, which sometimes take minutes to download.
1 parent b8da917 commit cd250aa

2 files changed

Lines changed: 88 additions & 80 deletions

File tree

Lines changed: 88 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,90 @@
1-
name: Release Build
1+
name: Build
2+
on: push
23

3-
on:
4-
push:
5-
branches: master
4+
env:
5+
ANDROID_SDK_TOOLS: "4333796"
6+
ANDROID_NDK: "20.1.5948944"
7+
ANDROID_CMAKE: "3.10.2.4988404"
68

79
jobs:
8-
build:
10+
cacheTarballs:
911
runs-on: ubuntu-18.04
10-
env:
11-
ANDROID_SDK_TOOLS: "4333796"
12-
ANDROID_NDK: "20.1.5948944"
13-
ANDROID_CMAKE: "3.10.2.4988404"
12+
steps:
13+
- uses: actions/checkout@v1
14+
15+
- run: ./dodownloadtarballs
16+
17+
- run: ls -lR dependency-builder/src/main/cpp/tarballs
18+
19+
- uses: actions/upload-artifact@v1
20+
with:
21+
name: tarballs
22+
path: dependency-builder/src/main/cpp/tarballs
23+
24+
debug:
25+
runs-on: ubuntu-18.04
26+
needs: cacheTarballs
27+
strategy:
28+
matrix:
29+
abi: [ x86, x86_64, armeabi-v7a, arm64-v8a ]
30+
steps:
31+
- uses: actions/checkout@v1
32+
- uses: actions/setup-java@v1
33+
with:
34+
java-version: 1.8
35+
36+
- name: Install Meson
37+
run: |
38+
# python3-setuptools and python3-wheel are required to pip install meson
39+
sudo apt-get --quiet install --yes python3-setuptools python3-wheel
40+
sudo -H pip3 install meson
41+
42+
- name: Install dependencies
43+
run: sudo apt-get --quiet install --yes gperf gettext
44+
# gperf is required by fontconfig
45+
# gettext is required by libfontforge
46+
47+
- name: Install Android tools
48+
run: |
49+
if test ! -d $ANDROID_HOME/tools/bin/sdkmanager
50+
then
51+
wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_TOOLS}.zip
52+
sudo unzip -d $ANDROID_HOME android-sdk.zip > /dev/null
53+
rm android-sdk.zip
54+
fi
55+
echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager "tools" > /dev/null
56+
echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager --licenses > /dev/null
57+
58+
- name: Install CMake and NDK
59+
run: |
60+
echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager "cmake;${ANDROID_CMAKE}" > /dev/null
61+
echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager "ndk;${ANDROID_NDK}" > /dev/null
1462
63+
- name: Download tarballs
64+
uses: actions/download-artifact@v1
65+
with:
66+
name: tarballs
67+
path: dependency-builder/src/main/cpp/tarballs
68+
69+
- name: Build pdf2htmlEX
70+
run: ./gradlew assembleDebug -PdisablePreDex -Pabi=${{ matrix.abi }}
71+
72+
- name: Upload build logs -stdout
73+
uses: actions/upload-artifact@v1
74+
with:
75+
name: ${{ matrix.abi }}-dependency-builder.stdout
76+
path: pdf2htmlEX/.cxx/cmake/debug/${{ matrix.abi }}/dependency-builder.stdout
77+
78+
- name: Upload build logs -stderr
79+
uses: actions/upload-artifact@v1
80+
with:
81+
name: ${{ matrix.abi }}-dependency-builder.stderr
82+
path: pdf2htmlEX/.cxx/cmake/debug/${{ matrix.abi }}/dependency-builder.stderr
83+
84+
release:
85+
needs: cacheTarballs
86+
if: github.ref == "refs/heads/master"
87+
runs-on: ubuntu-18.04
1588
steps:
1689
- uses: actions/checkout@v1
1790

@@ -27,8 +100,8 @@ jobs:
27100
28101
- name: Install dependencies
29102
run: sudo apt-get --quiet install --yes gperf gettext
30-
# gperf is required by fontconfig
31-
# gettext is required by libfontforge
103+
# gperf is required by fontconfig
104+
# gettext is required by libfontforge
32105

33106
- name: Install Android tools
34107
run: |
@@ -47,7 +120,10 @@ jobs:
47120
echo "y" | sudo $ANDROID_HOME/tools/bin/sdkmanager "ndk;${ANDROID_NDK}" > /dev/null
48121
49122
- name: Download tarballs
50-
run: ./dodownloadtarballs
123+
uses: actions/download-artifact@v1
124+
with:
125+
name: tarballs
126+
path: dependency-builder/src/main/cpp/tarballs
51127

52128
- name: Build pdf2htmlEX
53129
run: ./gradlew assembleRelease -PdisablePreDex
@@ -115,4 +191,3 @@ jobs:
115191
asset_path: ./pdf2htmlEX/build/libs/pdf2htmlex-android-${{steps.get_version.outputs.version}}-sources.jar
116192
asset_name: pdf2htmlex-android-${{steps.get_version.outputs.version}}-sources.jar
117193
asset_content_type: application/zip
118-

.github/workflows/debugBuild.yml

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)