Build Holo Docker images #33
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |