Skip to content

build 7z without aes/sha256 on android #74

build 7z without aes/sha256 on android

build 7z without aes/sha256 on android #74

Workflow file for this run

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