From 39941f929aa9625bcfc150f0529071f7400f9f8a Mon Sep 17 00:00:00 2001 From: Romain Beauxis Date: Wed, 5 Feb 2025 08:01:27 -0600 Subject: [PATCH 1/5] Cleanup build. --- .github/scripts/build-details.sh | 2 +- .github/scripts/build-posix.sh | 27 -------------- .github/workflows/ci.yml | 61 ++++---------------------------- 3 files changed, 7 insertions(+), 83 deletions(-) diff --git a/.github/scripts/build-details.sh b/.github/scripts/build-details.sh index a757c598c9..624f399900 100755 --- a/.github/scripts/build-details.sh +++ b/.github/scripts/build-details.sh @@ -33,7 +33,7 @@ fi BUILD_OS='["debian_trixie", "debian_bookworm", "ubuntu_oracular", "ubuntu_noble", "alpine"]' BUILD_PLATFORM='["amd64", "arm64"]' -BUILD_INCLUDE='[{"platform": "amd64", "runs-on": "depot-ubuntu-22.04-4", "alpine-arch": "x86_64", "docker-debian-os": "bookworm"}, {"platform": "arm64", "runs-on": "depot-ubuntu-22.04-arm-4", "alpine-arch": "aarch64", "docker-debian-os": "bookworm"}]' +BUILD_INCLUDE='[{"platform": "amd64", "runs-on": "depot-ubuntu-24.04-4", "alpine-arch": "x86_64", "docker-debian-os": "bookworm"}, {"platform": "arm64", "runs-on": "depot-ubuntu-22.04-arm-4", "alpine-arch": "aarch64", "docker-debian-os": "bookworm"}]' SHA=$(git rev-parse --short HEAD) diff --git a/.github/scripts/build-posix.sh b/.github/scripts/build-posix.sh index b479b856f2..fdcf279685 100755 --- a/.github/scripts/build-posix.sh +++ b/.github/scripts/build-posix.sh @@ -39,39 +39,12 @@ echo "::endgroup::" echo "::group::Setting up specific dependencies" -git clone https://github.com/savonet/ocaml-xiph.git -cd ocaml-xiph -opam install -y . -cd .. - -cd /tmp -rm -rf ocaml-posix -git clone https://github.com/savonet/ocaml-posix.git -cd ocaml-posix -opam pin -ny . -opam install -y posix-socket.2.2.0 posix-base.2.2.0 posix-time2.2.2.0 posix-types.2.2.0 - cd /tmp/liquidsoap-full/liquidsoap ./.github/scripts/checkout-deps.sh -git clone https://github.com/savonet/ocaml-mem_usage.git -cd ocaml-mem_usage -opam install -y . -cd .. - -opam update -opam remove -y jemalloc -opam install -y tls.1.0.2 ca-certs mirage-crypto-rng cstruct saturn_lockfree.0.5.0 ppx_hash memtrace xml-light odoc - cd /tmp/liquidsoap-full -# TODO: Remove gstreamer from liquidsoap-full -sed -e 's@ocaml-gstreamer@#ocaml-gstreamer@' -i PACKAGES - -# TODO: Remove taglib from liquidsoap-full -sed -e 's@ocaml-taglib@#ocaml-taglib@' -i PACKAGES - export PKG_CONFIG_PATH=/usr/share/pkgconfig/pkgconfig echo "::endgroup::" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35fb59eb42..a290eb4b22 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: runs-on: depot-ubuntu-24.04-4 needs: build_details container: - image: savonet/liquidsoap-ci:debian_bookworm@sha256:a9e3ce58f99dd80e06e50239cd51530c451d37e4a8fc6947ebcf7375ef1e41e4 + image: savonet/liquidsoap-ci:debian_bookworm options: --user opam env: HOME: /home/opam @@ -67,11 +67,6 @@ jobs: git remote set-url origin https://github.com/savonet/liquidsoap.git git fetch origin ${{ github.sha }} git checkout ${{ github.sha }} - - name: Install pandoc - run: | - cd /tmp - git clone https://github.com/smimram/ocaml-pandoc.git - opam pin -y add ocaml-pandoc - name: Build run: | echo "::group::Preparing build" @@ -86,9 +81,7 @@ jobs: cp PACKAGES.minimal PACKAGES opam update opam pin -yn . - opam install -y saturn_lockfree.0.5.0 ppx_hash opam info -f "depopts:" liquidsoap | grep -v osx-secure-transport | xargs opam remove -y inotify ffmpeg-avutil cohttp-lwt-unix prometheus-app ${{ needs.build_details.outputs.minimal_exclude_deps }} - opam install -y mem_usage echo "::endgroup::" cd liquidsoap ./.github/scripts/build-posix.sh "${{ steps.cpu_cores.outputs.count }}" @@ -102,7 +95,7 @@ jobs: build_js: runs-on: depot-ubuntu-24.04-4 container: - image: savonet/liquidsoap-ci:debian_bookworm@sha256:a9e3ce58f99dd80e06e50239cd51530c451d37e4a8fc6947ebcf7375ef1e41e4 + image: savonet/liquidsoap-ci:debian_bookworm options: --user opam env: HOME: /home/opam @@ -122,7 +115,6 @@ jobs: cd /tmp/liquidsoap-full/liquidsoap eval "$(opam config env)" opam update - opam install -y xml-light saturn_lockfree.0.5.0 dune build --profile release ./src/js/interactive_js.bc.js tree_sitter_parse: @@ -166,7 +158,7 @@ jobs: needs: build_details if: github.event_name != 'pull_request' && github.repository_owner == 'savonet' && needs.build_details.outputs.branch == 'main' container: - image: savonet/liquidsoap-ci:debian_bookworm@sha256:a9e3ce58f99dd80e06e50239cd51530c451d37e4a8fc6947ebcf7375ef1e41e4 + image: savonet/liquidsoap-ci:debian_bookworm options: --user root -v ${{ github.workspace }}/${{ github.run_number }}:/tmp/${{ github.run_number }} env: HOME: /home/opam @@ -185,11 +177,6 @@ jobs: run: | apt-get update apt-get install -y npm - - name: Install pandoc - run: | - cd /tmp - sudo -u opam -E git clone https://github.com/smimram/ocaml-pandoc.git - sudo -u opam -E opam pin -y add ocaml-pandoc - name: Build doc env: CPU_CORES: ${{ steps.cpu_cores.outputs.count }} @@ -231,7 +218,7 @@ jobs: runs-on: depot-ubuntu-24.04-4 needs: build_details container: - image: savonet/liquidsoap-ci:debian_bookworm@sha256:a9e3ce58f99dd80e06e50239cd51530c451d37e4a8fc6947ebcf7375ef1e41e4 + image: savonet/liquidsoap-ci:debian_bookworm options: --user root --privileged --ulimit core=-1 --security-opt seccomp=unconfined -v ${{ github.workspace }}/${{ github.run_number }}:/tmp/${{ github.run_number }} strategy: fail-fast: false @@ -256,20 +243,6 @@ jobs: sudo -u opam -E git remote set-url origin https://github.com/savonet/liquidsoap.git sudo -u opam -E git fetch origin ${{ github.sha }} sudo -u opam -E git checkout ${{ github.sha }} - - name: Install sqlite - run: | - sudo apt-get -y update - sudo apt-get -y install libsqlite3-dev - sudo -u opam -E opam install -y sqlite3 - - name: Install pandoc - run: | - cd /tmp - if [ ! -d ocaml-pandoc ]; then - mkdir -p ocaml-pandoc; - chown -R opam ocaml-pandoc; - sudo -u opam -E git clone https://github.com/smimram/ocaml-pandoc.git ocaml-pandoc - fi - sudo -u opam -E opam pin -y add ocaml-pandoc - name: Build env: CPU_CORES: ${{ steps.cpu_cores.outputs.count }} @@ -288,7 +261,6 @@ jobs: run: | apt-get -y update apt-get -y install frei0r-plugins - sudo -u opam -E opam install -y prometheus-liquidsoap - name: Run tests env: CPU_CORES: ${{ steps.cpu_cores.outputs.count }} @@ -406,27 +378,6 @@ jobs: sudo -u opam -E git remote set-url origin https://github.com/savonet/liquidsoap.git sudo -u opam -E git fetch origin ${{ github.sha }} sudo -u opam -E git checkout ${{ github.sha }} - - name: Update debian packages - if: contains(matrix.os, 'debian') || contains(matrix.os, 'ubuntu') - run: | - echo "opam hold" | sudo dpkg --set-selections - sudo apt-get update - sudo apt-get -y dist-upgrade - sudo apt-get -y autoremove - sudo apt-get -y install libsqlite3-dev - - name: Update alpine packages - if: matrix.os == 'alpine' - run: | - apk -U --force-overwrite upgrade - apk add -i sqlite-dev - - name: Install additional libraries - run: | - sudo -u opam -E opam install -y sqlite3 - - name: Install pandoc - run: | - cd /tmp - sudo -u opam -E git clone https://github.com/smimram/ocaml-pandoc.git ocaml-pandoc - sudo -u opam -E opam pin -y add ocaml-pandoc - name: Build run: | cd /tmp/liquidsoap-full/liquidsoap @@ -503,7 +454,7 @@ jobs: path: ${{ github.workspace }}/${{ github.run_number }}/s3-artifacts build_win32: - runs-on: depot-ubuntu-22.04-4 + runs-on: depot-ubuntu-24.04-4 needs: build_details strategy: fail-fast: false @@ -553,7 +504,7 @@ jobs: rm -rf /tmp/${{ github.run_number }}/win32 update_release: - runs-on: depot-ubuntu-22.04-4 + runs-on: depot-ubuntu-24.04-4 needs: [ build_details, From 9c9b074214bdebc285b95c862d36939671d2082c Mon Sep 17 00:00:00 2001 From: Romain Beauxis Date: Wed, 5 Feb 2025 08:11:44 -0600 Subject: [PATCH 2/5] runs on --- .github/scripts/build-details.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/build-details.sh b/.github/scripts/build-details.sh index 624f399900..a451e4af29 100755 --- a/.github/scripts/build-details.sh +++ b/.github/scripts/build-details.sh @@ -33,7 +33,7 @@ fi BUILD_OS='["debian_trixie", "debian_bookworm", "ubuntu_oracular", "ubuntu_noble", "alpine"]' BUILD_PLATFORM='["amd64", "arm64"]' -BUILD_INCLUDE='[{"platform": "amd64", "runs-on": "depot-ubuntu-24.04-4", "alpine-arch": "x86_64", "docker-debian-os": "bookworm"}, {"platform": "arm64", "runs-on": "depot-ubuntu-22.04-arm-4", "alpine-arch": "aarch64", "docker-debian-os": "bookworm"}]' +BUILD_INCLUDE='[{"platform": "amd64", "runs-on": "depot-ubuntu-24.04-4", "alpine-arch": "x86_64", "docker-debian-os": "bookworm"}, {"platform": "arm64", "runs-on": "depot-ubuntu-24.04-arm-4", "alpine-arch": "aarch64", "docker-debian-os": "bookworm"}]' SHA=$(git rev-parse --short HEAD) From fcd189c7a8bfa5026adfb2575613187bd0e3a9cb Mon Sep 17 00:00:00 2001 From: Romain Beauxis Date: Wed, 5 Feb 2025 08:15:29 -0600 Subject: [PATCH 3/5] Bring this back. --- .github/scripts/build-posix.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/scripts/build-posix.sh b/.github/scripts/build-posix.sh index fdcf279685..d6af97ef34 100755 --- a/.github/scripts/build-posix.sh +++ b/.github/scripts/build-posix.sh @@ -53,6 +53,8 @@ echo "::group::Compiling" cd /tmp/liquidsoap-full +cp PACKAGES.default PACKAGES + # Workaround touch liquidsoap/configure From 8409b6fe563bf77781b49b8d0fa0e2de0ba943dc Mon Sep 17 00:00:00 2001 From: Romain Beauxis Date: Wed, 5 Feb 2025 08:22:30 -0600 Subject: [PATCH 4/5] Better. --- .github/scripts/build-posix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/build-posix.sh b/.github/scripts/build-posix.sh index d6af97ef34..40130665f9 100755 --- a/.github/scripts/build-posix.sh +++ b/.github/scripts/build-posix.sh @@ -53,7 +53,7 @@ echo "::group::Compiling" cd /tmp/liquidsoap-full -cp PACKAGES.default PACKAGES +test -f PACKAGES || cp PACKAGES.default PACKAGES # Workaround touch liquidsoap/configure From 8ac1cfb89762215afc72b2a778f2ab03028a7da5 Mon Sep 17 00:00:00 2001 From: Romain Beauxis Date: Wed, 5 Feb 2025 08:27:48 -0600 Subject: [PATCH 5/5] Bring this back. --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a290eb4b22..85a5f57078 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,6 +83,7 @@ jobs: opam pin -yn . opam info -f "depopts:" liquidsoap | grep -v osx-secure-transport | xargs opam remove -y inotify ffmpeg-avutil cohttp-lwt-unix prometheus-app ${{ needs.build_details.outputs.minimal_exclude_deps }} echo "::endgroup::" + opam install -y mem_usage cd liquidsoap ./.github/scripts/build-posix.sh "${{ steps.cpu_cores.outputs.count }}" env: