mirror of
https://github.com/Interlisp/maiko.git
synced 2026-01-13 23:27:12 +00:00
88 lines
2.7 KiB
YAML
88 lines
2.7 KiB
YAML
#*******************************************************************************
|
|
# buildBuilderImage.yml
|
|
#
|
|
# Workflow to build a multiarch Docker image that includes all of the tools for
|
|
# building maiko for linux. Intended to be used (exclusively?) by the github
|
|
# actions that build maiko releases - e.g., buildRelease.yml.
|
|
#
|
|
# The purpose is to make the maiko github actions quicker and less resource
|
|
# consuming by not hving to intll the tools every time and instead just reuse
|
|
# this Docker image.
|
|
#
|
|
#
|
|
# Copyright 2023 by Interlisp.org
|
|
#
|
|
# Frank Haasz 2023-02-21
|
|
#
|
|
# ******************************************************************************
|
|
|
|
name: 'Build/Push Builder Image'
|
|
|
|
# Run this workflow on ...
|
|
on: workflow_dispatch
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
|
|
buildBuilder:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
# Checkout maiko
|
|
- name: Checkout maiko
|
|
uses: actions/checkout@v3
|
|
|
|
# Setup docker environment variables
|
|
- name: Setup Docker Environment Variables
|
|
id: docker_env
|
|
run: |
|
|
DOCKER_REGISTRY="ghcr.io"
|
|
DOCKER_NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
|
|
DOCKER_REPO=${DOCKER_REGISTRY}/${DOCKER_NAMESPACE}/maiko-builder
|
|
DOCKER_TAGS="${DOCKER_REPO}:latest"
|
|
echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> ${GITHUB_ENV}
|
|
echo "DOCKER_TAGS=${DOCKER_TAGS}" >> ${GITHUB_ENV}
|
|
|
|
# Setup the Docker Machine Emulation environment.
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@master
|
|
with:
|
|
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
|
|
|
# Setup the Docker Buildx funtion
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@master
|
|
|
|
# Login to ghcr.io
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
# Do the Docker Build using the Dockerfile_builder in the repository we
|
|
# checked out. Push the result to ghcr.io.
|
|
#
|
|
- name: Build Docker Images for Push to GHCR
|
|
if: ${{ true }}
|
|
uses: docker/build-push-action@v4
|
|
with:
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
build-args: |
|
|
BUILD_DATE=${{ env.BUILD_DATE }}
|
|
context: ./.github/workflows
|
|
file: ./.github/workflows/Dockerfile_builder
|
|
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
|
# Push the result to DockerHub
|
|
push: true
|
|
tags: ${{ env.DOCKER_TAGS }}
|
|
|
|
|
|
######################################################################################
|