build 7z without aes/sha256 on android #74
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
name: android | |
on: | |
push: | |
branches: [ "main" ] | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build: | |
strategy: | |
matrix: | |
include: | |
# - os: ubuntu-latest | |
# name: android 19 | |
# android_abi: armeabi-v7a | |
# android_arm_neon: TRUE | |
# android_arm_mode: thumb | |
# android_platform: 19 | |
# android_stl: c++_static | |
# arch: armv7a | |
# clang_prefix: armv7a-linux-androideabi | |
# - os: ubuntu-latest | |
# name: android 19 | |
# android_abi: x86 | |
# android_arm_neon: FALSE | |
# android_arm_mode: thumb | |
# android_platform: 19 | |
# android_stl: c++_static | |
# arch: 1686 | |
# clang_prefix: i686-linux-android | |
# - os: ubuntu-latest | |
# name: android 21 | |
# android_abi: armeabi-v7a | |
# android_arm_neon: TRUE | |
# android_arm_mode: thumb | |
# android_platform: 21 | |
# android_stl: c++_static | |
# arch: armv7a | |
# clang_prefix: armv7a-linux-androideabi | |
- os: ubuntu-latest | |
name: android 21 | |
android_abi: arm64-v8a | |
android_arm_neon: TRUE | |
android_arm_mode: thumb | |
android_platform: 21 | |
android_stl: c++_static | |
arch: aarch64 | |
clang_prefix: aarch64-linux-android | |
# - os: ubuntu-latest | |
# name: android 21 | |
# android_abi: x86 | |
# android_arm_neon: FALSE | |
# android_arm_mode: thumb | |
# android_platform: 21 | |
# android_stl: c++_static | |
# arch: 1686 | |
# clang_prefix: i686-linux-android | |
- os: ubuntu-latest | |
name: android 21 | |
android_abi: x86_64 | |
android_arm_neon: FALSE | |
android_arm_mode: thumb | |
android_platform: 21 | |
android_stl: c++_static | |
arch: x86_64 | |
clang_prefix: x86_64-linux-android | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.name }} @ ${{ matrix.arch }} | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
- name: uncompress docker image | |
run: | | |
xz -d ./ubuntu.tar.xz | |
- name: load docker image | |
run: | | |
sudo docker image load -i ./ubuntu.tar | |
- name: create docker container | |
run: | | |
sudo docker container create --user ubuntu --workdir /home/ubuntu --init --tty --tmpfs /tmp --ulimit nofile=262144:262144 --name git_local_ubuntu git_local_ubuntu:23.10 | |
- name: start docker container | |
run: | | |
sudo docker container start git_local_ubuntu | |
- name: allow ubuntu user to sudo | |
run: | | |
sudo docker container exec --user root git_local_ubuntu bash -c "echo 'ubuntu ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/ubuntu" | |
- name: update packages | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "sudo apt update" | |
- name: install apt-utils | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "sudo apt install -y apt-utils" | |
- name: install perl-readline | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "sudo apt install -y libterm-readline-gnu-perl" | |
- name: install systemd | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "sudo apt install -y systemd systemd-sysv systemd-dev" | |
- name: boot systemd - commit image | |
run: | | |
sudo docker container commit git_local_ubuntu git_local_ubuntu:23.10 | |
- name: boot systemd - stop container | |
run: | | |
sudo docker container stop git_local_ubuntu | |
- name: boot systemd - remove container | |
run: | | |
sudo docker container rm git_local_ubuntu | |
- name: boot systemd - host remount cgroup | |
run: | | |
sudo mount -o remount,rw,nosuid,nodev,noexec,relatime /sys/fs/cgroup | |
- name: boot systemd - create systemd container | |
run: | | |
sudo docker container create --user root --workdir /home/root --tmpfs /tmp --tty --cap-add SYS_ADMIN --cap-add NET_ADMIN --cgroup-parent docker.slice --security-opt apparmor:unconfined --security-opt seccomp=unconfined --ulimit nofile=262144:262144 -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns host --name git_local_ubuntu git_local_ubuntu:23.10 /sbin/init | |
- name: boot systemd - start systemd container | |
run: | | |
sudo docker container start git_local_ubuntu | |
sudo docker container exec git_local_ubuntu bash -c "sleep 5 ; systemctl --wait is-system-running || sysctl --failed" | |
- name: boot systemd - verify | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "systemctl status" | |
- name: boot systemd - create user session | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "mkdir -p /run/user/\$(id -u ubuntu)" | |
sudo docker container exec git_local_ubuntu bash -c "chown ubuntu:ubuntu /run/user/\$(id -u ubuntu)" | |
sudo docker container exec git_local_ubuntu bash -c "systemctl start user@\$(id -u ubuntu)" | |
- name: SYSTEMD - install polkitd | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"sudo apt install -y polkitd pkexec polkitd-pkla\"" | |
- name: reboot systemd - commit image | |
run: | | |
sudo docker container commit git_local_ubuntu git_local_ubuntu:23.10 | |
- name: reboot systemd - stop container | |
run: | | |
sudo docker container stop git_local_ubuntu | |
- name: reboot systemd - remove container | |
run: | | |
sudo docker container rm git_local_ubuntu | |
- name: reboot systemd - create systemd container | |
run: | | |
sudo docker container create --user root --workdir /home/root --tmpfs /tmp --tty --cap-add SYS_ADMIN --cap-add NET_ADMIN --cgroup-parent docker.slice --security-opt apparmor:unconfined --security-opt seccomp=unconfined --ulimit nofile=262144:262144 -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns host --name git_local_ubuntu git_local_ubuntu:23.10 /sbin/init | |
- name: reboot systemd - start systemd container | |
run: | | |
sudo docker container start git_local_ubuntu | |
sudo docker container exec git_local_ubuntu bash -c "sleep 5 ; systemctl --wait is-system-running || sysctl --failed" | |
- name: reboot systemd - verify | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "systemctl status" | |
- name: reboot systemd - create user session | |
run: | | |
sudo docker container exec git_local_ubuntu bash -c "mkdir -p /run/user/\$(id -u ubuntu)" | |
sudo docker container exec git_local_ubuntu bash -c "chown ubuntu:ubuntu /run/user/\$(id -u ubuntu)" | |
sudo docker container exec git_local_ubuntu bash -c "systemctl start user@\$(id -u ubuntu)" | |
- name: generate program | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "printf \"#include <stdio.h>\nint main() { printf(\\\"Hello World!\\\\\n\\\"); return 0; }\n\" > program.c" | |
- name: cat program | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "cat program.c" | |
- name: SYSTEMD - install clang-17 | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"sudo apt install -y clang-17 clang-format-17 lldb-17 lld-17 clang-tidy-17 clang-tools-17 flang-17 llvm-17-linker-tools llvm-17-tools llvm-17-runtime llvm-17-tools mlir-17-tools libmlir-17\"" | |
- name: SYSTEMD - make clang-17 default | |
run: | | |
sudo docker cp ./update_alternatives_clang.sh git_local_ubuntu:/home/ubuntu/update_alternatives_clang.sh | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "sudo chmod +x update_alternatives_clang.sh" | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "sudo chown ubuntu:ubuntu update_alternatives_clang.sh" | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"sudo ./update_alternatives_clang.sh 17\"" | |
- name: SYSTEMD - install cmake | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"sudo apt install -y cmake\"" | |
- name: SYSTEMD - install NDK 25c | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"sudo apt install -y google-android-ndk-r25c-installer\"" | |
- name: copy GITHUB_WORKSPACE directory to docker | |
run: | | |
echo "copying $GITHUB_WORKSPACE to docker" | |
sudo docker cp $GITHUB_WORKSPACE git_local_ubuntu:/home/ubuntu/git_repo | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "sudo chown -R ubuntu:ubuntu git_repo" | |
- name: SYSTEMD - make help | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"cd git_repo ; make --help\"" | |
- name: SYSTEMD - cmake help | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"cd git_repo ; cmake --help\"" | |
- name: SYSTEMD - cmake build | |
run: | | |
sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"cd git_repo ; NDK=/lib/android-sdk/ndk/25.2.9519653; NDK_LINUX=\\\$NDK/toolchains/llvm/prebuilt/linux-x86_64; make CMAKE_FLAGS=\\\"-DCMAKE_VERBOSE_MAKEFILE=TRUE -DCMAKE_TOOLCHAIN_FILE=\\\$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=${{ matrix.android_abi }} -DANDROID_ARM_MODE=${{ matrix.android_arm_mode }} -DANDROID_ARM_NEON=${{ matrix.android_arm_neon }} -DANDROID_PLATFORM=${{ matrix.android_platform }} -DANDROID_STL=${{ matrix.android_stl }}\\\"\"" | |
# - uses: actions/upload-artifact@v3 | |
# with: | |
# name: program-android-${{ matrix.android }}-${{ matrix.arch }} | |
# path: ./program-android-${{ matrix.android }}-${{ matrix.arch }} | |
# retention-days: 1 |