forked from lxc/lxc
-
Notifications
You must be signed in to change notification settings - Fork 7
111 lines (97 loc) · 4.67 KB
/
Copy pathmain.yml
File metadata and controls
111 lines (97 loc) · 4.67 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
name: Android-arm64-Builds
on:
workflow_dispatch:
inputs:
ndk_version:
description: 'Android NDK version'
required: false
default: 'r29c'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Android NDK
uses: nttld/setup-ndk@v1
with:
ndk-version: ${{ github.event.inputs.ndk_version || 'r27c' }}
- name: Install dependencies
run: |
sudo apt-get install -y -qq build-essential pipx python3-venv pkg-config cmake docbook2x \
python3-pip pipx jq
sudo npm install -g conventional-changelog-cli
conventional-changelog -o CHANGELOG.md -r 2
pipx ensurepath
pipx install meson==0.61
pipx install ninja
- name: Download Dependencies
run: |
libssl=$(curl -s https://api.github.com/repos/android-dev-stub/libssl-android-stub-dev/releases/latest | grep browser_download_url | cut -d'"' -f4 |grep -E 'zip$')
libssl_file=$(curl -s https://api.github.com/repos/android-dev-stub/libssl-android-stub-dev/releases/latest | grep name | cut -d'"' -f4 |grep -E 'zip$')
wget -q ${libssl} && sudo unzip -q -o ${libssl_file} -d / && echo 1/4 ${libssl} ${libssl_file}
libcap=$(curl -s https://api.github.com/repos/android-dev-stub/libcap-android-stub-dev/releases/latest | grep browser_download_url | cut -d'"' -f4 |grep -E 'zip$')
libcap_file=$(curl -s https://api.github.com/repos/android-dev-stub/libcap-android-stub-dev/releases/latest | grep name | cut -d'"' -f4 |grep -E 'zip$')
wget -q ${libcap} && sudo unzip -q -o ${libcap_file} -d / && echo 2/4 ${libcap} ${libcap_file}
libselinux=$(curl -s https://api.github.com/repos/android-dev-stub/libselinux-android-stub-dev/releases/latest | grep browser_download_url | cut -d'"' -f4 |grep -E 'zip$')
libselinux_file=$(curl -s https://api.github.com/repos/android-dev-stub/libselinux-android-stub-dev/releases/latest | grep name | cut -d'"' -f4 |grep -E 'zip$')
wget -q ${libselinux} && sudo unzip -q -o ${libselinux_file} -d / && echo 3/4 ${libselinux} ${libselinux_file}
libminijail=$(curl -s https://api.github.com/repos/android-dev-stub/libminijail-dev/releases/latest | grep browser_download_url | cut -d'"' -f4 |grep -E 'zip$')
libminijail_file=$(curl -s https://api.github.com/repos/android-dev-stub/libminijail-dev/releases/latest | grep name | cut -d'"' -f4 |grep -E 'zip$')
wget -q ${libminijail} && sudo unzip -q -o ${libminijail_file} -d / && echo 4/4 ${libminijail} ${libminijail_file}
- name: Build lxc
run: |
sed -i "s|android-ndk-r27c|$ANDROID_NDK_HOME|g" aarch64-android-api30.txt
export PKG_CONFIG_PATH=/data/sysroot/lib/pkgconfig:$PKG_CONFIG_PATH
export LDFLAGS="-L/data/sysroot/lib -lcap -lselinux -lminijail -lssl"
meson setup build \
-Dprefix=/data/share \
-Dinit-script=module \
-Druntime-path=/data/share/tmp \
-Dstrip=true \
-Dd_lto=true \
-Dlog-path=log/lxc \
-Ddata-path=lib/lxc \
--localstatedir=/data/share/var \
-Db_pie=false \
-Dmemfd-rexec=false \
--buildtype release \
-Dcapabilities=true \
-Dseccomp=false \
-Dseccomp-minijail=true \
-Dselinux=true \
-Dapparmor=false \
-Dopenssl=true \
-Ddbus=false \
-Dandroid-log=true \
-Dandroid-audio=false \
-Dandroid-network=false \
-Dlandlock-monitor=false \
-Dinstall-state-dirs=true \
--cross-file aarch64-android-api30.txt
meson compile -C build
sudo /usr/local/bin/ninja -C build install
echo "RELEASE_TAG=$(meson introspect meson.build --projectinfo | jq -r '.version')-$(git log -1 --format=%h)" >> $GITHUB_ENV
- name: Upload artifacts lxc
uses: actions/upload-artifact@v4.3.1
with:
name: android-aarch64-lxc
path: /data/share/*
- name: Upload artifacts lxc-module
uses: actions/upload-artifact@v4.3.1
with:
name: android-lxc-module
path: lxc-module.zip
- name: Create a TAR file for artifact
run: |
tar -czvf android-aarch64-api30-lxc.tar.gz -C /data/share .
- name: Create Release and Upload Release Asset
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ env.RELEASE_TAG }}
name: Release ${{ env.RELEASE_TAG }}
body_path: CHANGELOG.md
draft: false
prerelease: false
files: |
android-aarch64-api30-lxc.tar.gz
lxc-module.zip