Skip to content

Build Holo Docker images #33

Build Holo Docker images

Build Holo Docker images #33

Workflow file for this run

name: Build Holo Docker images
on:
workflow_dispatch:
push:
branches:
- main
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Login to GitHub Container Registry
run: |
echo $GITHUB_TOKEN | docker login ghcr.io -u ian-h-chamberlain --password-stdin
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download SteamOS
run: ./download.sh
- name: Build base image
run: sudo ./build.sh
- name: Get base image version info
id: version
run: |
docker run ghcr.io/ian-h-chamberlain/holo-base:latest \
cat /etc/os-release >> $GITHUB_OUTPUT
- name: Cleanup SteamOS image
run: rm -rf ./steamos_image ./steamos
- name: Build Rust toolchain image
run: |
cd languages
docker build -t ghcr.io/ian-h-chamberlain/holo-toolchain-rust:latest -f ./rust.dockerfile .
- name: Build Go toolchain image
run: |
cd languages
docker build -t ghcr.io/ian-h-chamberlain/holo-toolchain-go:latest -f ./go.dockerfile .
- name: Wait for other runs to complete
uses: softprops/turnstyle@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Tag and push images
run:
VERSION_FULL=${{ steps.version.outputs.VERSION_ID }}
VERSION_MINOR=$(echo "$VERSION_FULL" | cut -d. -f1,2)
BUILD_ID=${{ steps.version.outputs.BUILD_ID }}
for IMAGE in \
base toolchain-rust toolchain-go
do
IMG_ID=$(docker images -q ghcr.io/ian-h-chamberlain/holo-$IMAGE:latest)
docker tag "$IMG_ID" ghcr.io/ian-h-chamberlain/holo-$IMAGE:$VERSION
docker tag "$IMG_ID" ghcr.io/ian-h-chamberlain/holo-$IMAGE:$MINOR_VERSION
docker tag "$IMG_ID" ghcr.io/ian-h-chamberlain/holo-$IMAGE:build-$BUILD_ID
docker push --all-tags ghcr.io/ian-h-chamberlain/holo-$IMAGE
done
- name: Log out of GitHub Container Registry
run: |
docker logout ghcr.io