Skip to content

fix: container metadata #35

fix: container metadata

fix: container metadata #35

name: build-containers
on:
push:
tags: [ 'v*' ]
pull_request:
workflow_dispatch:
concurrency:
group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
cancel-in-progress: true
jobs:
build-containers:
name: ${{ matrix.container }}
runs-on: ubuntu-20.04
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
container:
- 'ubuntu-20.04'
- 'alpine-3.17'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: tamatebako
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./${{ matrix.container }}.Dockerfile
push: ${{ contains(github.ref, 'refs/tags/v') }}
tags: ghcr.io/tamatebako/tebako-${{ matrix.container }}
labels: |
latest
"org.opencontainers.image.source=${{ github.repositoryUrl }}"
- name: Purge old versions
if: contains(github.ref, 'refs/tags/v')
continue-on-error: true
uses: actions/delete-package-versions@v5
with:
package-name: 'tebako-${{ matrix.container }}'
package-type: 'container'
min-versions-to-keep: 1
delete-only-untagged-versions: 'true'
test-packaging-in-container:
name: Package ${{ matrix.gem }} in ${{ matrix.container }} with Ruby ${{ matrix.package_ruby_ver }}
if: contains(github.ref, 'refs/tags/v')
runs-on: ubuntu-20.04
needs: build-containers
strategy:
fail-fast: false
matrix:
gem:
- 'fontist'
container:
- 'ubuntu-20.04'
- 'alpine-3.17'
package_ruby_ver:
- '3.1.6'
- '3.2.3'
container:
image: ghcr.io/tamatebako/tebako-${{ matrix.container }}:latest
steps:
- name: Checkout fontist
uses: actions/checkout@v4
with:
repository: fontist/fontist
path: ${{github.workspace}}/fontist
- name: Package fontist
run: tebako press --root=fontist --entry-point=fontist --output=fontist-package --Ruby=${{ matrix.package_ruby_ver }}
- name: Run smoke test
run: ./fontist-package help
test-packaging-by-container:
name: Package ${{ matrix.gem }} by ${{ matrix.container }} container with Ruby ${{ matrix.package_ruby_ver }}
if: contains(github.ref, 'refs/tags/v')
runs-on: ubuntu-20.04
needs: build-containers
strategy:
fail-fast: false
matrix:
gem:
- 'fontist'
container:
- 'ubuntu-20.04'
- 'alpine-3.17'
package_ruby_ver:
- '3.1.6'
- '3.2.3'
steps:
- name: Checkout fontist
uses: actions/checkout@v4
with:
repository: fontist/fontist
path: ${{github.workspace}}/fontist
- name: Package fontist
run: |
docker run -v ${{github.workspace}}:/mnt/w -t ghcr.io/tamatebako/tebako-${{ matrix.container }}:latest \
tebako press --root=/mnt/w/fontist --entry-point=fontist --output=/mnt/w/fontist-package --Ruby=${{ matrix.package_ruby_ver }}
- name: Run smoke test Ubuntu
if: contains(matrix.container, 'ubuntu')
run: ./fontist-package help
- name: Run smoke test Alpine
if: contains(matrix.container, 'alpine')
run: docker run -t alpine:latest ./fontist-package help