1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- ---
- name: 'Build container'
- on:
- workflow_dispatch:
- pull_request:
- branches:
- - master
- paths:
- - container/**
- push:
- branches:
- - master
- paths:
- - container/**
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
- jobs:
- build:
- runs-on: ubuntu-latest
- permissions:
- contents: read
- packages: write
- steps:
- - name: Checkout
- uses: classabbyamp/treeless-checkout-action@v1
- - name: Get image release
- id: release
- run: |
- # gets the list of all date-shaped tags for the image, finds the most recent one
- tag="$(skopeo list-tags "docker://ghcr.io/${{ github.repository_owner }}/void-mklive" | \
- jq -r '.Tags | sort | reverse | map(select(test("^[0-9]{8}(R[0-9]+)?$")))[0]')"
- # tags from a different day or pre-YYYYMMDDRN
- if [ "${tag%R*}" != "$(date -u +%Y%m%d)" ] || [ "${tag%R*}" = "${tag}" ]; then
- rel=1
- else
- rel=$(( ${tag##*R} + 1 ))
- fi
- echo "rel=${rel}" >> "${GITHUB_OUTPUT}"
- - name: Docker metadata
- id: meta
- uses: docker/metadata-action@v4
- with:
- images: |
- ghcr.io/${{ github.repository_owner }}/void-mklive
- tags: |
- type=sha,prefix=
- type=raw,value=latest,enable={{is_default_branch}}
- type=raw,value={{date 'YYYYMMDD'}}R${{ steps.release.outputs.rel }},enable={{is_default_branch}},priority=1000
- flavor: latest=false
- labels: |
- org.opencontainers.image.authors=Void Linux team and contributors
- org.opencontainers.image.url=https://voidlinux.org
- org.opencontainers.image.documentation=https://github.com/${{ github.repository }}
- org.opencontainers.image.source=https://github.com/${{ github.repository }}
- org.opencontainers.image.vendor=Void Linux
- org.opencontainers.image.title=Void Linux mklive container
- org.opencontainers.image.description=Image for building mklive images
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
- - name: Login to GCHR
- if: github.event_name != 'pull_request'
- uses: docker/login-action@v2
- with:
- registry: ghcr.io
- username: ${{ github.actor }}
- password: ${{ secrets.GITHUB_TOKEN }}
- - name: Build and push images
- id: build_and_push
- uses: docker/bake-action@v3
- with:
- push: ${{ github.event_name != 'pull_request' }}
- targets: void-mklive
- files: |
- container/docker-bake.hcl
- ${{ steps.meta.outputs.bake-file }}
- set: |
- _common.cache-to=type=gha
- _common.cache-from=type=gha
|