Skip to content

build

build #6814

Workflow file for this run

name: build
on:
push:
branches:
- main
paths-ignore:
- README.md
- LICENSE
schedule:
- cron: "0 */6 * * *"
workflow_dispatch:
jobs:
setup:
name: Setup
runs-on: ubuntu-latest
outputs:
images-matrix: ${{ steps.images-matrix.outputs.JSON_CONTENT }}
steps:
- name: Checkout the Git repository
uses: actions/checkout@v6
- name: Get image list
id: images-matrix
run: |
echo 'JSON_CONTENT<<EOF' >> $GITHUB_OUTPUT
jq -cn '{"include": [reduce ($ARGS.positional[] / "/") as [$k, $v] (.; . += ["\($k)"]) | .[] | {image: .}]}' --args $(\ls images) >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
build:
name: Publish ${{ matrix.image }}
runs-on: ubuntu-latest
continue-on-error: false
needs: [setup]
strategy:
matrix: ${{ fromJson(needs.setup.outputs.images-matrix) }}
fail-fast: false
steps:
- name: Checkout the Git repository
uses: actions/checkout@v6
# - name: Login to registry.eeems.codes
# uses: docker/login-action@v4
# with:
# registry: registry.eeems.codes
# username: github
# password: ${{ secrets.CR_PAT }}
- name: Login to Docker Hub
uses: docker/login-action@v4
with:
username: eeems
password: ${{ secrets.DOCKER_AT }}
- name: Install chronic
uses: Eeems-Org/apt-cache-action@v1.5
with:
packages: moreutils
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Clean up system
run: |
df -h
rm -rf .git/
docker system prune --force
docker rmi $(docker image ls -aq) || true
docker system prune --force
export DEBIAN_FRONTEND="noninteractive"
sudo apt-get autoremove -y
sudo apt-get autoclean -y
sudo rm -rf \
/usr/lib/jvm \
/usr/share/dotnet \
/usr/share/swift \
/usr/local/.ghcup \
/usr/local/julia* \
/usr/local/lib/android \
/usr/local/share/chromium \
/opt/microsoft /opt/google \
/opt/az \
/usr/local/share/powershell
df -h
- name: Build and publish ${{ matrix.image }}
run: ./scripts/build -p -g images ${{ matrix.image }}
- name: Docker prune
run: docker system prune --force