From 81bc52baa51f7615f11338b80c98dff86c1578f7 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Thu, 24 Feb 2022 10:49:27 -0500 Subject: ci: Unify multiple workflows into one with separate jobs --- .github/workflows/ci.yml | 87 +++++++++++++++++++++++++++++++++++++++++++ .github/workflows/freebsd.yml | 33 ---------------- .github/workflows/linux.yml | 38 ------------------- .github/workflows/macos.yml | 18 --------- 4 files changed, 87 insertions(+), 89 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/freebsd.yml delete mode 100644 .github/workflows/linux.yml delete mode 100644 .github/workflows/macos.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f5d27e1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,87 @@ +name: distcheck + +on: [push, pull_request] + +jobs: + linux: + name: Linux + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update -y + sudo apt-get install -y \ + gcc-multilib \ + acl \ + libacl1-dev \ + libacl1:i386 \ + attr \ + libattr1-dev \ + libattr1:i386 \ + libcap2-bin \ + libcap-dev \ + libcap2:i386 \ + libonig-dev \ + libonig5:i386 + # Ubuntu doesn't let you install the -dev packages for both amd64 and + # i386 at once, so we make our own symlinks to fix -m32 -lacl -lattr -lcap + sudo ln -s libacl.so.1 /lib/i386-linux-gnu/libacl.so + sudo ln -s libattr.so.1 /lib/i386-linux-gnu/libattr.so + sudo ln -s libcap.so.2 /lib/i386-linux-gnu/libcap.so + sudo ln -s libonig.so.5 /lib/i386-linux-gnu/libonig.so + + - name: Run tests + run: | + make -j$(nproc) distcheck + + macos: + name: macOS + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v2 + + - name: Install dependencies + run: | + brew install coreutils + + - name: Run tests + run: | + make -j$(sysctl -n hw.ncpu) distcheck + + freebsd: + name: FreeBSD + + if: ${{ github.repository_owner == 'tavianator' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} + + runs-on: ubuntu-latest + + concurrency: muon + + steps: + - uses: actions/checkout@v2 + + - uses: tailscale/github-action@main + with: + authkey: ${{ secrets.TAILSCALE_KEY }} + + - name: Configure SSH + env: + SSH_KEY: ${{ secrets.SSH_KEY }} + run: | + mkdir ~/.ssh + printf '%s' "$SSH_KEY" >~/.ssh/github-actions + chmod 0600 ~/.ssh/github-actions + printf 'Host %s\n\tStrictHostKeyChecking=accept-new\n\tUser github\n\tIdentityFile ~/.ssh/github-actions\n' "$(tailscale ip -6 muon)" >~/.ssh/config + + - name: Run tests + run: | + muon=$(tailscale ip -6 muon) + rsync -rl --delete . "[$muon]:bfs" + ssh "$muon" 'gmake -C bfs -j$(sysctl -n hw.ncpu) distcheck' diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml deleted file mode 100644 index 82c0275..0000000 --- a/.github/workflows/freebsd.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: FreeBSD - -on: [push, pull_request] - -jobs: - build: - if: ${{ github.repository_owner == 'tavianator' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} - - runs-on: ubuntu-latest - - concurrency: muon - - steps: - - uses: actions/checkout@v2 - - - uses: tailscale/github-action@main - with: - authkey: ${{ secrets.TAILSCALE_KEY }} - - - name: Configure SSH - env: - SSH_KEY: ${{ secrets.SSH_KEY }} - run: | - mkdir ~/.ssh - printf '%s' "$SSH_KEY" >~/.ssh/github-actions - chmod 0600 ~/.ssh/github-actions - printf 'Host %s\n\tStrictHostKeyChecking=accept-new\n\tUser github\n\tIdentityFile ~/.ssh/github-actions\n' "$(tailscale ip -6 muon)" >~/.ssh/config - - - name: Run tests - run: | - muon=$(tailscale ip -6 muon) - rsync -rl --delete . "[$muon]:bfs" - ssh "$muon" 'gmake -C bfs -j$(sysctl -n hw.ncpu) distcheck' diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml deleted file mode 100644 index dbbe3b4..0000000 --- a/.github/workflows/linux.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Linux - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Install dependencies - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update -y - sudo apt-get install -y \ - gcc-multilib \ - acl \ - libacl1-dev \ - libacl1:i386 \ - attr \ - libattr1-dev \ - libattr1:i386 \ - libcap2-bin \ - libcap-dev \ - libcap2:i386 \ - libonig-dev \ - libonig5:i386 - # Ubuntu doesn't let you install the -dev packages for both amd64 and - # i386 at once, so we make our own symlinks to fix -m32 -lacl -lattr -lcap - sudo ln -s libacl.so.1 /lib/i386-linux-gnu/libacl.so - sudo ln -s libattr.so.1 /lib/i386-linux-gnu/libattr.so - sudo ln -s libcap.so.2 /lib/i386-linux-gnu/libcap.so - sudo ln -s libonig.so.5 /lib/i386-linux-gnu/libonig.so - - - name: Run tests - run: | - make -j$(nproc) distcheck diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml deleted file mode 100644 index 39a0f9c..0000000 --- a/.github/workflows/macos.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: macOS - -on: [push, pull_request] - -jobs: - build: - runs-on: macos-latest - - steps: - - uses: actions/checkout@v2 - - - name: Install dependencies - run: | - brew install coreutils - - - name: Run tests - run: | - make -j$(sysctl -n hw.ncpu) distcheck -- cgit v1.2.3