fix libxml2 #369
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
# Job execution time - Each job in a workflow can run for up to 6 hours of execution time. | |
# Workflow run time - Each workflow run is limited to 35 days | |
name: linux | |
on: | |
push: | |
branches: [ "main" ] | |
workflow_dispatch: | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
should_run: | |
runs-on: ubuntu-latest | |
name: should_i_run | |
outputs: | |
output1: ${{ steps.check.outputs.target_commit_id }} | |
steps: | |
- name: check | |
run: | | |
wget https://gist.github.com/mgood7123/47957c59a4b0cbda11875632ee0b8f15/raw/7e876a60f2735cf7e60150a9a29edf6ddaad20a8/check.cpp -O check.cpp | |
cat << EOF > data.json | |
${{toJSON(github.event.commits.*)}} | |
EOF | |
cat -n data.json | |
git clone https://github.com/danielaparker/jsoncons --depth=1 | |
g++ --std=c++17 -I jsoncons/include check.cpp -o check | |
./check 3 >> "$GITHUB_OUTPUT" # check for android [1] windows [2] linux [3] macos [4] | |
build: | |
needs: should_run | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
name: linux | |
flatpak_id: com.smallville7123.Hello | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.name }} | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{needs.should_run.outputs.output1}} | |
submodules: recursive | |
- name: load docker image | |
run: | | |
sudo sh -c 'curl -L https://github.com/mgood7123/SystemD-docker/releases/download/1.0/ubuntu_systemd.tar | docker image load' | |
# THIS ONLY NEED TO BE DONE ONCE | |
# | |
- 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: 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 "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/\$(id -u ubuntu)/bus systemd-run --user --scope --collect /bin/bash -c \"sudo chown -R ubuntu:ubuntu git_repo\"" | |
- 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 automake | |
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 automake\"" | |
- name: SYSTEMD - install patch | |
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 patch\"" | |
- name: SYSTEMD - install gperf | |
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 gperf\"" | |
- name: SYSTEMD - install groff | |
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 groff\"" | |
- name: SYSTEMD - install git | |
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 git\"" | |
- name: SYSTEMD - install gettext | |
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 gettext\"" | |
- name: SYSTEMD - clone libiconv | |
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 ; git clone git://git.savannah.gnu.org/libiconv.git libiconv --recursive --depth=1\"" | |
- name: SYSTEMD - libiconv autopull.sh | |
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 ; cd libiconv ; ./autopull.sh --one-time\"" | |
- name: SYSTEMD - cmake build - Debug - Generate | |
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 ; export TERM=xterm-256color; mkdir BUILD_DEBUG ; mkdir ROOTFS_DEBUG ; cmake -G \\\"Unix Makefiles\\\" -DCMAKE_INSTALL_PREFIX=ROOTFS_DEBUG -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_FLAGS=\\\"-g3 -O0\\\" -DCMAKE_CXX_FLAGS=\\\"-g3 -O0\\\" -DCMAKE_COLOR_DIAGNOSTICS=ON -DCMAKE_COLOR_MAKEFILE=ON -S . -B BUILD_DEBUG\"" | |
- name: SYSTEMD - cmake build - Debug - 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 ; export TERM=xterm-256color; cmake --build BUILD_DEBUG\"" | |
- name: SYSTEMD - cmake build - Debug - Install | |
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 ; export TERM=xterm-256color; cmake --install BUILD_DEBUG\"" | |
# - name: SYSTEMD - install flatpak | |
# 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 flatpak flatpak-builder\"" | |
# - 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 | |
# # flatpak requires --privileged and we dont know how to get around it | |
# - 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 --privileged --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: SYSTEMD - add flatpak repository | |
# 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 flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo\"" | |
# - name: SYSTEMD - install flatpak sdk | |
# 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 flatpak install -y flathub org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08\"" | |
# - name: write flatpak manifest | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"app-id: ${{ matrix.flatpak_id }}\" > ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"runtime: org.freedesktop.Platform\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"runtime-version: '23.08'\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"sdk: org.freedesktop.Sdk\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"command: program-linux\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"modules:\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" - name: hello\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" buildsystem: simple\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" build-commands:\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" - install -D program-linux /app/bin/program-linux\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" sources:\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" - type: file\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" path: \$HOME/program-linux\" >> ${{ matrix.flatpak_id }}.yml" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \" dest-filename: program-linux\" >> ${{ matrix.flatpak_id }}.yml" | |
# - name: SYSTEMD - build flatpak package | |
# 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 \"flatpak-builder -y --user --install build-dir ${{ matrix.flatpak_id }}.yml\"" | |
# - name: SYSTEMD - execute flatpak package - run | |
# 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 \"flatpak run ${{ matrix.flatpak_id }}\"" | |
# - name: copy flatpak package - export to repo | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "flatpak build-export smallville7123_repo build-dir" | |
# - name: copy flatpak package - bundle from repo | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "flatpak build-bundle smallville7123_repo ${{ matrix.flatpak_id }}.flatpak ${{ matrix.flatpak_id }}" | |
# - name: copy flatpak package - mkdir | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "mkdir flatpak-package" | |
# - name: copy flatpak package - mv | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "mv -v ${{ matrix.flatpak_id }}.flatpak flatpak-package/${{ matrix.flatpak_id }}.flatpak" | |
# - name: copy flatpak package - make install script | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo\" > flatpak-package/install.sh" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"sudo flatpak install -y flathub org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08\" >> flatpak-package/install.sh" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"flatpak install -y --user ${{ matrix.flatpak_id }}.flatpak\" >> flatpak-package/install.sh" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "echo \"flatpak run --user ${{ matrix.flatpak_id }}\" >> flatpak-package/run.sh" | |
# - name: copy flatpak package - chmod | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "chmod +x flatpak-package/install.sh" | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "chmod +x flatpak-package/run.sh" | |
# - name: copy flatpak package - tar | |
# run: | | |
# sudo docker container exec --user ubuntu --workdir /home/ubuntu git_local_ubuntu bash -c "tar -cvf flatpak-package.tar flatpak-package" | |
# - name: copy flatpak package - copy | |
# run: | | |
# sudo docker cp git_local_ubuntu:/home/ubuntu/flatpak-package.tar ./flatpak-package.tar | |
# - uses: actions/upload-artifact@v3 | |
# with: | |
# name: flatpak-package.tar | |
# path: ./flatpak-package.tar | |
# retention-days: 1 |