Skip to content

image_build

image_build #389

Workflow file for this run

# Maintainer: Jonas Strassel <[email protected]>
# Description: Builds multi-arch docker images to be used in ci-environments
name: image_build
on:
push:
branches:
- main
workflow_dispatch:
schedule:
- cron: '30 2 * * 0'
env:
PLATFORMS: linux/arm64,linux/amd64
jobs:
release:
runs-on: ubuntu-22.04
steps:
- name: checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: prepare
run: |
echo "DATE=$(date +%Y%m%d)" >>$GITHUB_ENV
- name: setup-qemu
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3
- name: setup-buildx
uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3
- name: login-docker
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: build-docker-base
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v5
with:
context: .
build-args: |
CACHEBUST=${{ env.DATE }}
platforms: ${{ env.PLATFORMS }}
file: base.Dockerfile
push: true
tags: manjarolinux/base:${{ env.DATE }},manjarolinux/base:latest
cache-from: type=gha, scope=${{ github.workflow }}
cache-to: type=gha, scope=${{ github.workflow }}
- name: build-docker-build
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v5
with:
context: .
build-args: |
CACHEBUST=${{ env.DATE }}
platforms: ${{ env.PLATFORMS }}
file: build.Dockerfile
push: true
tags: manjarolinux/build:${{ env.DATE }},manjarolinux/build:latest
- name: qemu-setup
run: |
sudo apt-get update
sudo apt-get install qemu binfmt-support qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- name: test-amd64
run: |
docker run --rm -t --platform=amd64 manjarolinux/base:latest uname -a
docker run --rm -t --platform=amd64 manjarolinux/base:latest pacman --noconfirm -S base-devel
docker run --rm -t --platform=amd64 manjarolinux/build:latest uname -a
docker run --rm -t --platform=amd64 manjarolinux/build:latest pacman --noconfirm -S python-pip
- name: test-arm64
run: |
docker run --rm -t --platform=arm64 manjarolinux/base:latest uname -a
docker run --rm -t --platform=arm64 manjarolinux/base:latest pacman --noconfirm -S base-devel
docker run --rm -t --platform=arm64 manjarolinux/build:latest uname -a
docker run --rm -t --platform=arm64 manjarolinux/build:latest pacman --noconfirm -S python-pip