From b3f2cfc3092b57a7e128c1927d793f2a032f2330 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Wed, 10 Jul 2024 08:26:50 -0700 Subject: [PATCH] why is this so complicated --- .github/workflows/main.yml | 369 +------------------------------------ env/export.sh | 9 +- env/setup-sys.sh | 6 +- env/sys-ubuntu.sh | 7 +- 4 files changed, 18 insertions(+), 373 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 98e321c1b..b1c2617c2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,8 +2,6 @@ name: CI on: [push] jobs: - - cache-submodule: runs-on: ubuntu-latest @@ -12,337 +10,6 @@ jobs: - run: env/setup.sh - uses: ./.github/actions/submodule - - - build-flt-orc: - needs: [cache-submodule] - runs-on: macos-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '11' - - - run: ./app-flutter.sh orchid && cd app-flutter && make - - - - build-ios-app: - needs: [cache-submodule] - runs-on: macos-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: debug=ldid make -j3 -C app-ios precache='--no-android' - - - build-and-app: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - run: sudo rm -rf /opt - - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: env/setup-ndk.sh - - - run: make -j3 -C app-android precache='--no-ios' - - - uses: actions/upload-artifact@v4 - with: - name: orchid-apk - path: app-android/out-and/Orchid.apk - - - build-and-dkr: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - run: sudo rm -rf /opt - - - uses: actions/checkout@v4 - - run: env/setup-git.sh - - uses: ./.github/actions/submodule - - - run: cd app-android && env/docker.sh -j3 - - - - build-mac-app: - needs: [cache-submodule] - runs-on: macos-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: debug=ldid make -j3 -C app-macos precache='--no-android --no-ios --macos' - - - build-mac-snd: - needs: [cache-submodule] - runs-on: macos-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: make -j3 -C eth-sender - - - uses: actions/upload-artifact@v4 - with: - name: cj-mac - path: eth-sender/out-mac/x86_64/cj - - - build-mac-cli: - needs: [cache-submodule] - runs-on: macos-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: make -j3 -C cli-shared - - - uses: actions/upload-artifact@v4 - with: - name: orchidcd-mac - path: cli-shared/out-mac/x86_64/orchidcd - - - build-mac-srv: - needs: [cache-submodule] - runs-on: macos-13 - - if: ${{ false }} # XXX: Hypervisor.framework - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - uses: ./.github/actions/nerdctl - - - run: make -j3 -C srv-daemon - - - uses: actions/upload-artifact@v4 - with: - name: orchidd-mac - path: srv-daemon/out-mac/x86_64/orchidd - - - run: git status - - - - build-win-app: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: DEBIAN_FRONTEND=noninteractive sudo -EH apt-get -y install mingw-w64 - - - run: debug=crossndk make -j3 -C app-windows ./env/dotdot/gui-orchid/.flutter-plugins - - run: debug=crossndk make -j3 -C app-windows target=win precache='--no-android --no-ios --windows -a' - - - uses: actions/upload-artifact@v4 - with: - name: orchid-win - path: app-windows/out-win/package - - - build-win-snd: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: DEBIAN_FRONTEND=noninteractive sudo -EH apt-get -y install mingw-w64 - - - run: make -j3 -C eth-sender target=win - - - uses: actions/upload-artifact@v4 - with: - name: cj-win - path: eth-sender/out-win/x86_64/cj.exe - - - build-win-cli: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: DEBIAN_FRONTEND=noninteractive sudo -EH apt-get -y install mingw-w64 - - - run: make -j3 -C cli-shared target=win - - - uses: actions/upload-artifact@v4 - with: - name: orchidcd-win - path: cli-shared/out-win/x86_64/orchidcd.exe - - - build-win-srv: - needs: [cache-submodule] - runs-on: macos-13 - - if: ${{ false }} # XXX: use Hyper-V - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - uses: ./.github/actions/nerdctl - - run: brew install mingw-w64 coreutils - - - run: make -j3 -C srv-daemon target=win - - - uses: actions/upload-artifact@v4 - with: - name: orchidd-w64 - path: srv-daemon/out-win/x86_64/orchidd.exe - - - run: git status - - - - build-lnx-app: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: debug=crossndk make -j3 -C app-linux ./env/dotdot/gui-orchid/.flutter-plugins - - run: debug=crossndk make -j3 -C app-linux precache='--no-android --no-ios --linux' - - - uses: actions/upload-artifact@v4 - with: - name: orchid-lnx - path: app-linux/out-lnx/package - - - build-lnx-tst: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: debug=crossndk make -j3 -C tst-network - - - build-lnx-cli: - needs: [cache-submodule] - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - machine: [x86_64, arm64, armhf] - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: debug=crossndk make -j3 -C cli-shared machine=${{ matrix.machine }} - - - uses: actions/upload-artifact@v4 - with: - name: orchidcd-lnx-${{ matrix.machine }} - path: cli-shared/out-lnx/${{ matrix.machine }}/orchidcd - - - build-lnx-srv: - needs: [cache-submodule] - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - # XXX: armhf is missing rcrt1.o - machine: [x86_64, arm64] - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: env/setup-ndk.sh - - - run: debug=crossndk make -j3 -C srv-daemon machine=${{ matrix.machine }} - - - uses: actions/upload-artifact@v4 - with: - name: orchidd-lnx-${{ matrix.machine }} - path: srv-daemon/out-lnx/${{ matrix.machine }}/orchidd - if: ${{ matrix.machine != 'x86_64' }} - - - run: git status - - - build-lnx-dkr: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - run: sudo rm -rf /opt - - - uses: actions/checkout@v4 - - run: env/setup-git.sh - - uses: ./.github/actions/submodule - - - run: cd srv-daemon && env/docker.sh -j3 - - - build-lnx-bld: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - run: sudo rm -rf /opt - - - uses: actions/checkout@v4 - - - run: docker build --build-arg GIT_REPOSITORY=https://github.com/${{ github.repository }}.git --build-arg GIT_COMMIT=${{ github.sha }} --build-arg GIT_SETUP=env/setup-git.sh -t orchidd:latest srv-docker - - run: docker save -o orchidd.tar orchidd:latest - - - uses: actions/upload-artifact@v4 - with: - name: orchidd-dkr - path: orchidd.tar - - build-lnx-mac: needs: [cache-submodule] runs-on: macos-13 @@ -355,44 +22,10 @@ jobs: - uses: ./.github/actions/nerdctl - run: env/setup-ndk.sh - - run: gmake -j3 -C srv-daemon target=lnx + - run: gmake -j3 -C srv-daemon target=lnx sysroot - uses: actions/upload-artifact@v4 with: name: orchidd-lnx-amd64 path: srv-daemon/out-lnx/x86_64/orchidd - - build-lnx-bad: - needs: [cache-submodule] - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - run: env/setup.sh - - uses: ./.github/actions/submodule - - - run: make -j3 -C srv-daemon - - - build-lnx-all: - needs: [build-lnx-mac, build-lnx-bld] - runs-on: ubuntu-latest - - steps: - - uses: actions/download-artifact@v4 - with: - name: orchidd-dkr - - run: tar -xvf orchidd.tar - - run: tar -xvf "$(jq -r '.[0].Layers | .[]' manifest.json | tail -n1)" - - - uses: actions/download-artifact@v4 - with: - name: orchidd-lnx-amd64 - - - run: chmod +x orchidd - - run: diff -u <(./usr/sbin/orchidd --version) <(./orchidd --version) - - run: diff -u <(xxd usr/sbin/orchidd) <(xxd orchidd) - - - diff --git a/env/export.sh b/env/export.sh index 8589025dc..c06965d05 100755 --- a/env/export.sh +++ b/env/export.sh @@ -1,4 +1,9 @@ #!/bin/bash -set -e +set -ex +EC() { echo -e '\e[1;33m'code $?'\e[m\n'; dmesg; } +trap EC ERR "$@" -tar -czf /tmp/export.tgz -C / --one-file-system --exclude=./tmp . +echo BEFORE +ls -la /tmp/export.tgz +tar -vczf /tmp/export.tgz -C / --one-file-system --exclude=./tmp . +echo AFTER diff --git a/env/setup-sys.sh b/env/setup-sys.sh index 8c0d5ef09..0c436037a 100755 --- a/env/setup-sys.sh +++ b/env/setup-sys.sh @@ -1,9 +1,11 @@ #!/bin/bash -set -e +set -ex +EC() { echo -e '\e[1;33m'code $?'\e[m\n'; } +trap EC ERR llvm=$1 shift 1 export DEBIAN_FRONTEND=noninteractive -apt-get -y update +apt-get -y -oDebug::pkgAcquire::Worker=1 update apt-get -y dist-upgrade apt-get -y install --no-install-recommends libstdc++-"${llvm}"-dev{,-{arm{hf,64},i386}-cross} "$@" for root in /usr/*-gnu*; do diff --git a/env/sys-ubuntu.sh b/env/sys-ubuntu.sh index 11a912003..1423856fd 100755 --- a/env/sys-ubuntu.sh +++ b/env/sys-ubuntu.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set -ex set -o pipefail sysroot=$1 @@ -34,6 +34,7 @@ if [[ $(uname -s) = Linux ]]; then HOME= "${proot}" -S . -w / -b "${mount}:/mnt" /mnt/setup-sys.sh "$@" else # https://stackoverflow.com/questions/29934204/mount-data-volume-to-docker-with-readwrite-permission + ls -la /tmp/lima if [[ -d /tmp/lima ]]; then tarball=/tmp/lima/export-$$.tgz else @@ -44,9 +45,13 @@ else clean() { rm -f "${tarball}"; } trap clean EXIT + ls -la "${tarball}" ${ENV_DOCKER:=docker} run --platform linux/amd64 -i --rm \ -v "${mount}:/mnt" -v "${tarball}:/tmp/export.tgz" \ ubuntu:"${distro}" /mnt/export.sh /mnt/setup-sys.sh "$@" + ls -la "${tarball}" + test -s "${tarball}" + tar -l "${tarball}" fakeroot tar --exclude dev -vxzmf "${tarball}" fi