-
Notifications
You must be signed in to change notification settings - Fork 83
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
184 additions
and
136 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,17 +15,17 @@ | |
## limitations under the License. | ||
## | ||
|
||
name: Packages-TUR-AVD | ||
name: Packages-TUR-Waydroid | ||
|
||
on: | ||
push: | ||
branches: | ||
- tur-avd | ||
paths: | ||
- 'tur-avd/**' | ||
- 'tur-waydroid/**' | ||
pull_request: | ||
paths: | ||
- 'tur-avd/**' | ||
- 'tur-waydroid/**' | ||
workflow_dispatch: | ||
inputs: | ||
packages: | ||
|
@@ -34,26 +34,57 @@ on: | |
|
||
jobs: | ||
build: | ||
runs-on: macos-latest | ||
runs-on: ubuntu-22.04 | ||
env: | ||
ANDROID_HOME: "/opt/termux/android-sdk" | ||
NDK: "/opt/termux/android-ndk" | ||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | ||
strategy: | ||
matrix: | ||
target_arch: | ||
# Disabled for aarch64 due to arm64-v8a emulator cannot start. | ||
# - {"TERMUX_ARCH": "aarch64", "EMU_ARCH": "arm64-v8a"} | ||
- {"TERMUX_ARCH": "arm", "EMU_ARCH": "armeabi-v7a"} | ||
- {"TERMUX_ARCH": "i686", "EMU_ARCH": "x86"} | ||
- {"TERMUX_ARCH": "x86_64", "EMU_ARCH": "x86_64"} | ||
target_arch: [i686, x86_64] | ||
# target_arch: [aarch64, arm, i686, x86_64] | ||
fail-fast: false | ||
steps: | ||
- name: Install DKMS and missing modules | ||
run: | | ||
sudo apt update | ||
sudo apt install dkms -y | ||
git clone https://github.com/licy183/anbox-modules | ||
cd anbox-modules && ./INSTALL.sh | ||
- name: Install wayland | ||
run: | | ||
sudo apt update | ||
sudo apt install xwayland mutter -y | ||
mutter --wayland --headless & | ||
- name: Install waydroid | ||
run: | | ||
sudo apt update | ||
sudo apt install curl ca-certificates -y | ||
curl https://repo.waydro.id | sudo bash | ||
sudo apt update | ||
sudo apt install waydroid -y | ||
sudo waydroid init | ||
- name: Solve network issues for waydroid | ||
run: | | ||
# https://unix.stackexchange.com/a/743946 | ||
sudo sed -i~ -E 's/=.\$\(command -v (nft|ip6?tables-legacy).*/=/g' \ | ||
/usr/lib/waydroid/data/scripts/waydroid-net.sh | ||
- name: Start waydroid | ||
run: | | ||
waydroid session start & | ||
waydroid show-full-ui | ||
sleep 30s | ||
sudo waydroid shell -- curl -v https://www.google.com | ||
- name: Clone repository | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 1000 | ||
path: ${{ github.workspace }} | ||
- name: Install basic tools | ||
run: brew install coreutils | ||
submodules: true | ||
|
||
- name: Merge repos | ||
run: ./setup-environment.sh | ||
|
||
- name: Gather build summary | ||
run: | | ||
if [ "${{ github.event_name }}" != "workflow_dispatch" ]; then | ||
|
@@ -79,16 +110,29 @@ jobs: | |
fi | ||
mkdir -p ./artifacts ./debs | ||
touch ./debs/.placeholder | ||
echo "File changed: ${CHANGED_FILES}" | ||
if [ "${{ github.event_name }}" != "workflow_dispatch" ]; then | ||
# Process tag '%ci:no-build' that may be added as line to commit message. | ||
# Forces CI to cancel current build with status 'passed' | ||
if grep -qiP '^\s*%ci:no-build\s*$' <(git log --format="%B" -n 1 "HEAD"); then | ||
tar cf artifacts/debs-${{ matrix.target_arch }}.tar debs | ||
echo "[!] Force exiting as tag '%ci:no-build' was applied to HEAD commit message." | ||
exit 0 | ||
fi | ||
# XXX: TUR uses the termux-builder directly and may add custom builder image later. | ||
# Build local Docker image if setup scripts were changed. | ||
# Useful for pull requests submitting changes for both build environment and packages. | ||
# if grep -qP '^scripts/(Dockerfile|setup-android-sdk\.sh|setup-ubuntu\.sh)$' <<< "$CHANGED_FILES"; then | ||
# echo "Detected changes for environment setup scripts. Building custom Docker image now." | ||
# cd ./scripts | ||
# docker build -t termux/package-builder:latest . | ||
# cd .. | ||
# fi | ||
for repo_path in $(jq --raw-output 'keys | .[]' repo.json); do | ||
repo=$(jq --raw-output '.["'${repo_path}'"].name' repo.json) | ||
echo "Processing on repo: ${repo}" | ||
# Parse changed files and identify new packages and deleted packages. | ||
# Create lists of those packages that will be passed to upload job for | ||
# further processing. | ||
for file in $(echo "${CHANGED_FILES}"); do | ||
echo "File path: ${file}" | ||
while read -r file; do | ||
if ! [[ $file == ${repo_path}/* ]]; then | ||
# This file does not belong to a package, so ignore it | ||
continue | ||
|
@@ -114,7 +158,7 @@ jobs: | |
echo "$pkg" >> ./deleted_${repo}_packages | ||
fi | ||
fi | ||
done | ||
done<<<${CHANGED_FILES} | ||
done | ||
else | ||
for pkg in ${{ github.event.inputs.packages }}; do | ||
|
@@ -141,20 +185,24 @@ jobs: | |
if [ -f ./built_${repo}_packages.txt ]; then | ||
uniq ./built_${repo}_packages.txt > ./built_${repo}_packages.txt.tmp | ||
mv ./built_${repo}_packages.txt.tmp ./built_${repo}_packages.txt | ||
echo "./built_${repo}_packages.txt: " | ||
cat ./built_${repo}_packages.txt | ||
fi | ||
if [ -f ./built_${repo}_subpackages.txt ]; then | ||
uniq ./built_${repo}_subpackages.txt > ./built_${repo}_subpackages.txt.tmp | ||
mv ./built_${repo}_subpackages.txt.tmp ./built_${repo}_subpackages.txt | ||
echo "./built_${repo}_subpackages.txt: " | ||
cat ./built_${repo}_subpackages.txt | ||
fi | ||
if [ -f ./deleted_${repo}_packages.txt ]; then | ||
uniq ./deleted_${repo}_packages.txt > ./deleted_${repo}_packages.txt.tmp | ||
mv ./deleted_${repo}_packages.txt.tmp ./deleted_${repo}_packages.txt | ||
fi | ||
done | ||
- name: Free additional disk space (if necessary) | ||
run: | | ||
if grep -q '^code-server$\|^demo-package2$\$' ./built_tur_packages.txt; then | ||
sudo apt purge -yq $(dpkg -l | grep '^ii' | awk '{ print $2 }' | grep -P '(cabal-|dotnet-|ghc-|libmono|php|aspnetcore)') \ | ||
mono-runtime-common monodoc-manual ruby | ||
sudo apt autoremove -yq | ||
sudo rm -rf /opt/hostedtoolcache /usr/local /usr/share/dotnet /usr/share/swift | ||
fi | ||
- name: Lint packages | ||
run: | | ||
declare -a package_recipes | ||
|
@@ -167,39 +215,22 @@ jobs: | |
if [ ! -z "$package_recipes" ]; then | ||
./scripts/lint-packages.sh $package_recipes | ||
fi | ||
# TODO: Generate AVD Snapshot for caching | ||
# - name: Check AVD Cache | ||
# uses: actions/cache@v3 | ||
# id: avd-cache | ||
# with: | ||
# path: | | ||
# ~/.android/avd/* | ||
# ~/.android/adb* | ||
# key: avd-24-${{ matrix.build_env.MAJOR_VERSION }} | ||
|
||
# - name: Create AVD and Generate Snapshot for Caching | ||
# if: steps.avd-cache.outputs.cache-hit != 'true' | ||
# uses: reactivecircus/android-emulator-runner@v2 | ||
# with: | ||
# api-level: 24 | ||
# force-avd-creation: false | ||
# emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | ||
# disable-animations: false | ||
# script: echo "Generated AVD snapshot for caching." | ||
|
||
- name: Build packages | ||
uses: licy183/[email protected] | ||
with: | ||
arch: ${{ matrix.target_arch.EMU_ARCH }} | ||
api-level: 24 | ||
force-avd-creation: false | ||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | ||
disable-animations: true | ||
script: env TERMUX_ARCH=${{ matrix.target_arch.TERMUX_ARCH }} ./common-files/action-avd-step-build-packages.sh | ||
run: | | ||
declare -a packages | ||
for repo_path in $(jq --raw-output 'keys | .[]' repo.json); do | ||
repo=$(jq --raw-output '.["'${repo_path}'"].name' repo.json) | ||
if [ -f ./built_${repo}_packages.txt ]; then | ||
packages="$packages $(cat ./built_${repo}_packages.txt)" | ||
fi | ||
done | ||
if [ ! -z "$packages" ]; then | ||
PACKAGE_TO_BUILD="$packages" bash -x ./waydroid-build-wrapper.sh | ||
fi | ||
- name: Generate build artifacts | ||
if: always() | ||
run: | | ||
test -d tur/output && mv tur/output/* ./output/ | ||
for repo in $(jq --raw-output '.[].name' repo.json); do | ||
# Put package lists into directory with *.deb files so they will be transferred to | ||
# upload job. | ||
|
@@ -216,8 +247,7 @@ jobs: | |
done | ||
# Files containing certain symbols (e.g. ":") will cause failure in actions/upload-artifact. | ||
# Archiving *.deb files in a tarball to avoid issues with uploading. | ||
tar cf artifacts/debs-${{ matrix.target_arch.TERMUX_ARCH }}-${{ github.sha }}.tar debs | ||
rm -rf output | ||
tar cf artifacts/debs-${{ matrix.target_arch }}-${{ github.sha }}.tar debs | ||
- name: Checksums for built *.deb files | ||
if: always() | ||
run: | | ||
|
@@ -226,7 +256,7 @@ jobs: | |
if: always() | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: debs-${{ matrix.target_arch.TERMUX_ARCH }}-${{ github.sha }} | ||
name: debs-${{ matrix.target_arch }}-${{ github.sha }} | ||
path: ./artifacts | ||
|
||
upload: | ||
|
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 3 additions & 3 deletions
6
tur-avd/hello-tur-avd/build.sh → tur-waydroid/hello-tur-waydroid/build.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,15 @@ | ||
TERMUX_PKG_HOMEPAGE=https://github.com/termux-user-repository/tur | ||
TERMUX_PKG_DESCRIPTION="Dummy test for TUR AVD" | ||
TERMUX_PKG_DESCRIPTION="Dummy test for TUR Waydroid" | ||
TERMUX_PKG_LICENSE="GPL-2.0" | ||
TERMUX_PKG_MAINTAINER="@termux-user-repository" | ||
TERMUX_PKG_VERSION=0.1 | ||
TERMUX_PKG_SKIP_SRC_EXTRACT=true | ||
TERMUX_PKG_BUILD_IN_SRC=true | ||
|
||
termux_step_make() { | ||
$CC $CFLAGS $CPPFLAGS $TERMUX_PKG_BUILDER_DIR/main.c -o hello-tur-avd | ||
$CC $CFLAGS $CPPFLAGS $TERMUX_PKG_BUILDER_DIR/main.c -o hello-tur-waydroid | ||
} | ||
|
||
termux_step_make_install() { | ||
install -Dm700 hello-tur-avd $TERMUX_PREFIX/bin/hello-tur-avd | ||
install -Dm700 hello-tur-waydroid $TERMUX_PREFIX/bin/hello-tur-waydroid | ||
} |
2 changes: 1 addition & 1 deletion
2
tur-avd/hello-tur-avd/main.c → tur-waydroid/hello-tur-waydroid/main.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
#include <stdio.h> | ||
int main() { | ||
puts("Hello TUR AVD."); | ||
puts("Hello TUR Waydroid."); | ||
} |
Oops, something went wrong.