While kas and kas-isar surely have a common ground like the kas tool itself, kas-isar does not need all the toolchain packages that are essential Yocto dependencies. Splitting up the images earlier allows to shrink kas-isar by almost 400 MB. Use this chance to model both images as different build stages of the same Dockerfile. That is simpler than creating a temporary "kas-base" image via a separate Dockerfile. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
name: master
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
deploy_containers:
|
|
name: Build and deploy container images
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repo
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Identify release build
|
|
run: |
|
|
# The release workflow will push :latest for tagged revisions
|
|
if git describe --exact-match --tags --match '*.*'; then
|
|
echo "PUSH_MASTER=false" >> $GITHUB_ENV
|
|
else
|
|
echo "PUSH_MASTER=true" >> $GITHUB_ENV
|
|
fi
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v1
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
- name: Login to ghcr.io
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ secrets.PACKAGE_DEPLOY_USER }}
|
|
password: ${{ secrets.PACKAGE_DEPLOY_TOKEN }}
|
|
- name: Build kas image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
platforms: linux/amd64,linux/arm64
|
|
push: ${{ env.PUSH_MASTER }}
|
|
tags: ghcr.io/siemens/kas/kas
|
|
- name: Build kas-isar image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
target: kas-isar
|
|
platforms: linux/amd64,linux/arm64
|
|
push: ${{ env.PUSH_MASTER }}
|
|
tags: ghcr.io/siemens/kas/kas-isar
|