Skip to content

Updating deploy to use depot.dev #24

Updating deploy to use depot.dev

Updating deploy to use depot.dev #24

Workflow file for this run

name: Docker CI
on:
- push
permissions:
contents: write
pages: write
jobs:
build-linux:
runs-on: depot-ubuntu-22.04-32
strategy:
matrix:
target:
- id: fedora-baremetal
src: .
os: fedora:39
cmd: ./Hydrunfile fedora baremetal
dst: out/*
- id: fedora-hetzner
src: .
os: fedora:39
cmd: ./Hydrunfile fedora hetzner
dst: out/*
- id: fedora-digitalocean
src: .
os: fedora:39
cmd: ./Hydrunfile fedora digitalocean
dst: out/*
- id: fedora-aws
src: .
os: fedora:39
cmd: ./Hydrunfile fedora aws
dst: out/*
- id: fedora-gcp
src: .
os: fedora:39
cmd: ./Hydrunfile fedora gcp
dst: out/*
- id: fedora-ovh
src: .
os: fedora:39
cmd: ./Hydrunfile fedora ovh
dst: out/*
- id: fedora-linode
src: .
os: fedora:39
cmd: ./Hydrunfile fedora linode
dst: out/*
- id: rocky-baremetal
src: .
os: fedora:39
cmd: ./Hydrunfile rocky baremetal
dst: out/*
- id: rocky-hetzner
src: .
os: fedora:39
cmd: ./Hydrunfile rocky hetzner
dst: out/*
- id: rocky-digitalocean
src: .
os: fedora:39
cmd: ./Hydrunfile rocky digitalocean
dst: out/*
- id: rocky-aws
src: .
os: fedora:39
cmd: ./Hydrunfile rocky aws
dst: out/*
- id: rocky-gcp
src: .
os: fedora:39
cmd: ./Hydrunfile rocky gcp
dst: out/*
- id: rocky-equinix
src: .
os: fedora:39
cmd: ./Hydrunfile rocky equinix
dst: out/*
- id: rocky-ovh
src: .
os: fedora:39
cmd: ./Hydrunfile rocky ovh
dst: out/*
- id: rocky-azure
src: .
os: fedora:39
cmd: ./Hydrunfile rocky azure
dst: out/*
- id: rocky-civo
src: .
os: fedora:39
cmd: ./Hydrunfile rocky civo
dst: out/*
- id: rocky-linode
src: .
os: fedora:39
cmd: ./Hydrunfile rocky linode
dst: out/*
- id: alma-baremetal
src: .
os: fedora:39
cmd: ./Hydrunfile alma baremetal
dst: out/*
- id: alma-hetzner
src: .
os: fedora:39
cmd: ./Hydrunfile alma hetzner
dst: out/*
- id: alma-digitalocean
src: .
os: fedora:39
cmd: ./Hydrunfile alma digitalocean
dst: out/*
- id: alma-aws
src: .
os: fedora:39
cmd: ./Hydrunfile alma aws
dst: out/*
- id: alma-gcp
src: .
os: fedora:39
cmd: ./Hydrunfile alma gcp
dst: out/*
- id: alma-equinix
src: .
os: fedora:39
cmd: ./Hydrunfile alma equinix
dst: out/*
- id: alma-ovh
src: .
os: fedora:39
cmd: ./Hydrunfile alma ovh
dst: out/*
- id: alma-azure
src: .
os: fedora:39
cmd: ./Hydrunfile alma azure
dst: out/*
- id: alma-linode
src: .
os: fedora:39
cmd: ./Hydrunfile alma linode
dst: out/*
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Restore ccache
uses: actions/cache/restore@v4
with:
path: |
${{ runner.temp }}/${{ matrix.target.id }}/.cache/ccache
key: ccache-${{ matrix.target.id }}
- name: Build with Docker
working-directory: ${{ matrix.target.src }}
env:
PGP_KEY: ${{ secrets.PGP_KEY }}
PGP_KEY_PASSWORD: ${{ secrets.PGP_KEY_PASSWORD }}
PGP_KEY_ID: ${{ secrets.PGP_KEY_ID }}
run: docker run -v "${{ runner.temp }}/${{ matrix.target.id }}/.cache/ccache:/root/.cache/ccache" -v "${PWD}:/data" -e "PGP_KEY=${PGP_KEY}" -e "PGP_KEY_PASSWORD=${PGP_KEY_PASSWORD}" -e "PGP_KEY_ID=${PGP_KEY_ID}" ${{ matrix.target.os }} bash -c "cd /data && ${{ matrix.target.cmd }}"
- name: Fix permissions for output
run: sudo chown -R $USER .
- name: Save ccache
uses: actions/cache/save@v4
with:
path: |
${{ runner.temp }}/${{ matrix.target.id }}/.cache/ccache
key: ccache-${{ matrix.target.id }}
- name: Upload output
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.target.id }}
path: ${{ matrix.target.dst }}
publish-linux:
runs-on: depot-ubuntu-22.04-32
needs: build-linux
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download output
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/out
- name: Isolate the repositories
run: |
mkdir -p ${{ runner.temp }}/github-pages
for dir in ${{ runner.temp }}/out/*/; do
rsync -a "${dir}"/ ${{ runner.temp }}/github-pages/
done
- name: Increase Git buffer size to support pushing the largest file
run: git config --global http.postBuffer 32G
- name: Publish to GitHub pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ${{ runner.temp }}/github-pages/
keep_files: true
user_name: github-actions[bot]
user_email: github-actions[bot]@users.noreply.github.com