Skip to content

image_build

image_build #253

Workflow file for this run

# Maintainer: Jonas Strassel <jonas.strassel@manjaro.org>
# 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@8ade135a41bc03ea155e62e844d188df1ea18608 # v4
- name: prepare
run: |
echo "DATE=$(date +%Y%m%d)" >>$GITHUB_ENV
- name: setup-qemu
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3
- name: setup-buildx
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3
- name: login-docker
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: build-docker-base
uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # 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@0565240e2d4ab88bba5387d719585280857ece09 # v5
with:
context: .
build-args: |
CACHEBUST=${{ env.DATE }}
platforms: ${{ env.PLATFORMS }}
file: build.Dockerfile
push: true
tags: manjarolinux/build:${{ env.DATE }},manjarolinux/build:latest
cache-from: type=gha, scope=${{ github.workflow }}
cache-to: type=gha, scope=${{ github.workflow }}
- 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