Skip to content

Commit 57d57f4

Browse files
committed
Add workflow files.
1 parent 0db2813 commit 57d57f4

File tree

2 files changed

+172
-0
lines changed

2 files changed

+172
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Build zlib Libraries (Android)
2+
3+
on: [workflow_dispatch]
4+
5+
jobs:
6+
build:
7+
runs-on: [ubuntu-latest]
8+
steps:
9+
- uses: actions/[email protected]
10+
with:
11+
repository: "madler/zlib"
12+
path: "zlib"
13+
ref: "v1.3.1"
14+
submodules: true
15+
16+
- name: Install dependencies on Ubuntu
17+
run: |
18+
sudo apt-get update
19+
sudo apt-get install -y build-essential cmake ninja-build wget
20+
21+
- name: Setup Java
22+
uses: actions/setup-java@v3
23+
with:
24+
distribution: 'temurin'
25+
java-version: 17
26+
27+
- name: Install Android SDK Command-Line Tools
28+
run: |
29+
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O android-sdk-tools.zip
30+
unzip android-sdk-tools.zip -d tools
31+
mkdir $HOME/android-sdk/
32+
mkdir $HOME/android-sdk/cmdline-tools/
33+
mkdir $HOME/android-sdk/cmdline-tools/latest/
34+
mv ./tools/cmdline-tools/* $HOME/android-sdk/cmdline-tools/latest/
35+
chmod +x $HOME/android-sdk/cmdline-tools/latest/bin/*
36+
echo "ANDROID_HOME=$HOME/android-sdk" >> $GITHUB_ENV
37+
echo "ANDROID_SDK_ROOT=$HOME/android-sdk" >> $GITHUB_ENV
38+
39+
- name: Accept Android SDK Licenses
40+
run: |
41+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses
42+
- name: Install Specific Android NDK Version 26.3.11579264
43+
run: |
44+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --install "ndk;26.3.11579264"
45+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --install "build-tools;29.0.3"
46+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --install "platform-tools"
47+
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --install "platforms;android-28"
48+
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.3.11579264" >> $GITHUB_ENV
49+
echo "PATH=$PATH:$ANDROID_HOME/ndk/26.3.11579264" >> $GITHUB_ENV
50+
51+
- name: Build for arm64-v8a
52+
run: |
53+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
54+
-DCMAKE_SYSTEM_NAME=Android \
55+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
56+
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
57+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
58+
-S zlib \
59+
-B zlib/build/arm64-v8a -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=ON -ZLIB_BUILD_STATIC=OFF
60+
cmake --build zlib/build/arm64-v8a --config Release
61+
62+
- name: Build for x86_64
63+
run: |
64+
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release \
65+
-DCMAKE_SYSTEM_NAME=Android \
66+
-DCMAKE_ANDROID_NDK=$ANDROID_NDK_HOME \
67+
-DCMAKE_ANDROID_ARCH_ABI=x86_64 \
68+
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
69+
-S zlib \
70+
-B zlib/build/x86_64 -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=ON -ZLIB_BUILD_STATIC=OFF
71+
cmake --build zlib/build/x86_64 --config Release
72+
73+
74+
- name: Upload Artifacts
75+
uses: actions/[email protected]
76+
with:
77+
name: zlib-android-latest-all-artifacts
78+
path: |
79+
zlib/build/arm64-v8a/bin/*.so
80+
zlib/build/x86_64/bin/*.so
81+
if-no-files-found: ignore # 'warn' or 'ignore' or 'error'

.github/workflows/cmake.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: Build zlib Libraries
2+
3+
on: [workflow_dispatch]
4+
5+
jobs:
6+
build:
7+
runs-on: ${{ matrix.os }}
8+
strategy:
9+
matrix:
10+
include:
11+
- os: ubuntu-latest
12+
arch: x86_64
13+
cmake-arch: x64
14+
- os: linux
15+
arch: arm64
16+
cmake-arch: aarch64
17+
runner-label: self-hosted
18+
- os: windows-latest
19+
arch: x86_64
20+
triplet: x64-windows
21+
cmake-arch: x64
22+
- os: windows-latest
23+
arch: x86
24+
triplet: x86-windows
25+
cmake-arch: win32
26+
- os: windows-latest
27+
arch: arm64
28+
triplet: arm64-windows
29+
cmake-arch: arm64
30+
- os: macos-latest
31+
arch: x86_64
32+
cmake-arch: x86_64
33+
- os: macos-latest
34+
arch: arm64
35+
cmake-arch: arm64
36+
37+
steps:
38+
- uses: actions/[email protected]
39+
with:
40+
repository: "madler/zlib"
41+
path: "zlib"
42+
ref: "v1.3.1"
43+
submodules: true
44+
45+
- name: Install Dependencies on Ubuntu
46+
if: matrix.os == 'linux' || matrix.os == 'ubuntu-latest'
47+
run: |
48+
sudo apt-get update
49+
sudo apt-get install -y build-essential cmake
50+
51+
- name: Configure zlib with CMake on Linux
52+
if: matrix.os == 'linux' || matrix.os == 'ubuntu-latest'
53+
run: |
54+
cd zlib
55+
cmake -S ./ -B ./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.cmake-arch }} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=ON -ZLIB_BUILD_STATIC=OFF
56+
57+
- name: Configure zlib with CMake on Windows
58+
if: matrix.os == 'windows-latest' && matrix.arch != 'arm64'
59+
run: |
60+
cd zlib
61+
cmake -S ./ -B ./build -DCMAKE_BUILD_TYPE=Release -A ${{ matrix.cmake-arch }} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=ON -ZLIB_BUILD_STATIC=OFF
62+
63+
- name: Configure zlib with CMake on Windows (ARM64)
64+
if: matrix.os == 'windows-latest' && matrix.arch == 'arm64'
65+
run: |
66+
cd zlib
67+
cmake -S ./ -B ./build -DCMAKE_BUILD_TYPE=Release -A ${{ matrix.cmake-arch }} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=ON -ZLIB_BUILD_STATIC=OFF -DCMAKE_SYSTEM_VERSION=10.0.26100.0
68+
69+
- name: Configure zlib with CMake on macOS
70+
if: matrix.os == 'macos-latest'
71+
run: |
72+
cd zlib
73+
cmake -S ./ -B ./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=${{ matrix.cmake-arch }} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=ON -ZLIB_BUILD_STATIC=OFF
74+
75+
- name: Build zlib
76+
run: cmake --build zlib/build --config Release
77+
78+
- name: Move Windows binaries
79+
if: matrix.os == 'windows-latest'
80+
run: |
81+
mv zlib/build/bin/Release/*.dll zlib/build/bin/
82+
83+
- name: Upload Artifacts
84+
uses: actions/[email protected]
85+
with:
86+
name: zlib-${{ matrix.os }}-${{ matrix.arch }}-artifacts
87+
path: |
88+
zlib/build/bin/*.dll
89+
zlib/build/bin/*.so
90+
zlib/build/bin/*.dylib
91+
if-no-files-found: ignore # 'warn' or 'ignore' or 'error'

0 commit comments

Comments
 (0)