Skip to content

fix libxml2

fix libxml2 #369

Workflow file for this run

# 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