teleport/.github/workflows/build-ci-buildbox-images.yaml
Roman Tkachenko 710b7d18ef
Implicitly set go version in prepare-workspace (#18953)
- Determine Go version for cache key automatically instead of hardcoding.
- Do not build ghcr CI images (etcd and buildboxes) on PRs to avoid unintended breakages.
- Only build/push them on push events which mirrors our current Drone setup. We might add ability to trigger them manually via workflow_dispatch events later.
- Add release branches pattern for buildbox images trigger as well.
- Remove packages: read permission from test jobs since buildbox images are now public.

Signed-off-by: Roman Tkachenko <roman@goteleport.com>
Co-authored-by: Victor Sokolov <gzigzigzeo@gmail.com>
2022-12-01 00:40:53 +00:00

76 lines
1.9 KiB
YAML

name: Build CI Buildbox Images
run-name: Build CI Buildbox Images
on:
push:
paths:
- build.assets/Dockerfile
- build.assets/Dockerfile-centos7
- build.assets/Makefile
- build.assets/images.mk
branches:
- master
- branch/**
env:
REGISTRY: ghcr.io
BUILDBOX_BASE_NAME: ghcr.io/gravitational/teleport-buildbox
jobs:
buildbox:
name: Build Ubuntu Buildbox
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout Teleport
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# We need to keep env vars in sync, so, we can't use standard build actions
- name: Build buildbox image
run: cd build.assets && make buildbox
- name: Docker push the latest built image
run: docker push $(docker images -a --format '{{.Repository}}:{{.Tag}}'| head -1)
buildbox-centos7:
name: Build CentOS 7 Buildbox
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout Teleport
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# We need to keep env vars in sync, so, we can't use standard build actions
- name: Build buildbox image
run: cd build.assets && make buildbox-centos7
- name: Docker push the latest built image
run: docker push $(docker images -a --format '{{.Repository}}:{{.Tag}}'| head -1)