Via this workflow we now can build and push our docker images to
the GitHub Docker container registry:
26a1ee4e61/.github/workflows/docker-build.yaml
GitHub does not charge for downloads to runners (hosted or self-hosted).
This can therefore save the project money if we download from GitHub's
Docker reigstry over Google Cloud's.
This is a test to ensure this works as intended.
Change-Id: Iccdb1b7a912f1e0a0d82b7f888694958099315b3
54 lines
1.4 KiB
YAML
54 lines
1.4 KiB
YAML
name: Docker images build and push
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
jobs:
|
|
obtain-dockerfiles:
|
|
runs-on: [self-hosted, linux, x64, run]
|
|
container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
# Scheduled workflows run on the default branch by default. We
|
|
# therefore need to explicitly checkout the develop branch.
|
|
ref: develop
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: dockerfiles
|
|
path: util/dockerfiles
|
|
|
|
# This builds and pushes the docker image.
|
|
build-and-push:
|
|
runs-on: [self-hosted, linux, x64, run]
|
|
needs: obtain-dockerfiles
|
|
permissions:
|
|
packages: write
|
|
contents: read
|
|
|
|
steps:
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: dockerfiles
|
|
path: dockerfiles-docker-build
|
|
|
|
- uses: docker/setup-qemu-action@v2
|
|
name: Setup QEMU
|
|
|
|
- uses: docker/setup-buildx-action@v2
|
|
name: Set up Docker Buildx
|
|
|
|
- uses: docker/login-action@v2
|
|
name: Login to the GitHub Container Registry
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Build and push with bake
|
|
uses: docker/bake-action@v4
|
|
with:
|
|
workdir: ./dockerfiles-docker-build
|
|
files: docker-bake.hcl
|
|
push: true
|