Skip to content

test runner_arch

test runner_arch #88

Workflow file for this run

name: Build / Test / Push
on:
push:
branches:
- '**'
workflow_dispatch:
env:
DOCKER_METADATA_SET_OUTPUT_ENV: 'true'
jobs:
build:
runs-on: ${{ matrix.runner }}
outputs:
build-image-arm: ${{ steps.gen-output.outputs.image-arm }}
build-image-x86: ${{ steps.gen-output.outputs.image-x86 }}
strategy:
matrix:
runner:
- ubuntu-24.04
- ubuntu-24.04-arm
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ github.repository }}
- name: Write arch-specific image digest to outputs
id: gen-output
run: |
arch="${RUNNER_ARCH,,}"
echo $arch
fail
# echo "image-${{ runner.arch == 'X86' && 'x86' || 'arm' }}=${{ steps.meta.outputs.images }}@${{ steps.build.outputs.digest }}" >> "$GITHUB_OUTPUT"
- name: Build/push the arm image
id: build
uses: docker/build-push-action@v6
with:
cache-from: type=gha
cache-to: type=gha,mode=max
labels: ${{ steps.meta.outputs.labels }}
platforms: local
provenance: true
sbom: true
tags: ${{ steps.meta.outputs.tags }}
outputs: push-by-digest=true,type=image,push=true
test:
runs-on: ubuntu-24.04
needs:
- build
env:
COMPOSE_FILE: docker-compose.yml:docker-compose.ci.yml
DOCKER_APP_IMAGE: ${{ needs.build.outputs.build-image-x86 }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Compose
uses: docker/setup-compose-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Run the test script
run: |
docker compose run --rm --user root app chown -R avplayer:avplayer artifacts
docker compose up --detach --wait
docker compose exec app bin/test
push:
runs-on: ubuntu-24.04
needs:
- build
- test
env:
DOCKER_APP_IMAGE: ${{ needs.build.outputs.build-image-x86 }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Produce permanent image tags
id: branch-meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=sha
type=ref,event=branch
type=raw,value=latest,enable={{is_default_branch}}
- name: Retag and push the image
run: |
docker pull "$DOCKER_APP_IMAGE"
echo "$DOCKER_METADATA_OUTPUT_TAGS" | tr ' ' '\n' | xargs -n1 docker tag "$DOCKER_APP_IMAGE"
docker push --all-tags "$(echo "$DOCKER_APP_IMAGE" | cut -f1 -d:)"