From eeb9d653930588287e2550e6f908ca2259cd286e Mon Sep 17 00:00:00 2001 From: Jaromil Date: Mon, 14 Nov 2022 00:25:58 +0100 Subject: [PATCH] portable tomb tests in ci --- .github/workflows/ci.yml | 2 +- .github/workflows/portable.yml | 94 ++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/portable.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b35caef..58c1a0a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: os: [ubuntu-22.04, ubuntu-20.04] runs-on: ${{ matrix.os }} steps: - - name: dependencies + - name: Install tomb dependencies run: | sudo apt-get update -y -q sudo apt-get install -y -q zsh cryptsetup gpg gawk libgcrypt20-dev steghide qrencode python2 python3-pip python3-dev libssl-dev make gcc sudo gettext bsdmainutils file pinentry-curses xxd libsodium23 libsodium-dev diff --git a/.github/workflows/portable.yml b/.github/workflows/portable.yml new file mode 100644 index 0000000..bc94609 --- /dev/null +++ b/.github/workflows/portable.yml @@ -0,0 +1,94 @@ +name: portable tomb +on: + push: + paths: + - 'portable/**' + - '.github/workflows/portable.yml' + branches: + - master + pull_request: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: true + +jobs: + ubuntu-20: + name: 🐧 test Ubuntu-20 + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + steps: + - uses: actions/checkout@v3 + - name: Install portable tomb dependencies + run: | + sudo apt-get install -q -y make openssl wget fuse3 util-linux + sudo make -C portable download-deps-ubuntu20 + - name: Run portable tomb test + run: sudo make -C portable create-open-close + - uses: actions/upload-artifact@v3 + with: + name: ubuntu-test.tomb + path: portable/test.tomb* + retention-days: 1 + + freebsd: + runs-on: macos-12 + name: 😈 test FreeBSD-13 + needs: [ubuntu-20] + steps: + - uses: actions/checkout@v2 + - name: Download portable tomb volume built on Ubuntu + uses: actions/download-artifact@v3 + with: + name: ubuntu-test.tomb + path: portable + - name: Test in FreeBSD + id: test + uses: vmactions/freebsd-vm@v0 + with: + usesh: true + prepare: | + pkg install -y sudo gmake bash fusefs-libs3 fusefs-lkl e2fsprogs wget + wget https://files.dyne.org/tomb3/third-party/veracrypt-freebsd13-amd64 + mv veracrypt-freebsd13-amd64 /usr/bin/veracrypt + wget https://files.dyne.org/tomb3/third-party/zenroom-freebsd13-amd64 + mv zenroom-freebsd13-amd64 /usr/bin/zenroom + chmod a+x /usr/bin/veracrypt /usr/bin/zenroom + kldload fusefs + run: | + sudo gmake -C portable + sudo gmake -C portable check-random-data + - uses: actions/upload-artifact@v3 + with: + name: freebsd-test.tomb + path: portable/test.tomb* + retention-days: 1 + + ubuntu-last-cleanup: + name: 🎯 final Ubuntu tests and cleanup + runs-on: ubuntu-20.04 + needs: [freebsd] + steps: + - uses: actions/checkout@v3 + - name: Install compiler and dependencies + run: | + sudo apt-get install -q -y make openssl wget fuse3 util-linux + sudo make -C portable download-deps-ubuntu20 + - name: Download tomb built on FreeBSD + uses: actions/download-artifact@v3 + with: + name: freebsd-test.tomb + path: portable + - name: Check integrity FreeBSD->Ubuntu + run: sudo make -C portable check-random-data + - name: delete FreeBSD tomb artifacts + uses: geekyeggo/delete-artifact@v2 + with: + name: freebsd-test.tomb + - name: delete Ubuntu tomb artifacts + uses: geekyeggo/delete-artifact@v2 + with: + name: ubuntu-test.tomb