Skip to content

image_build

image_build #331

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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # 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@d70bba72b1f3fd22344832f00baa16ece964efeb # v3
- name: login-docker
uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: build-docker-base
uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # 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@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # 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