Skip to content

docker/debian: Update base image to trixie and add gcc13 to devtools #991

docker/debian: Update base image to trixie and add gcc13 to devtools

docker/debian: Update base image to trixie and add gcc13 to devtools #991

Workflow file for this run

name: Envoy/build-tools
permissions:
contents: read
on:
push:
branches:
- main
pull_request:
jobs:
build_image:
if: >-
${{
github.repository == 'envoyproxy/envoy-build-tools'
|| vars.ENVOY_CI_RUN == 'true'
}}
strategy:
fail-fast: false
matrix:
target: [ubuntu, debian]
arch: [amd64, arm64]
name: Build (${{ matrix.target }}-${{ matrix.arch }})
uses: ./.github/workflows/_build_image.yml
with:
distro: ${{ matrix.target }}
os_family: ${{ matrix.os_family != '' && matrix.os_family || 'linux' }}
host-platform: ${{ matrix.arch }}
runs-on: ${{ matrix.arch == 'amd64' && 'ubuntu-22.04' || 'ubuntu-22.04-arm' }}
target-platforms: ${{ matrix.arch == 'amd64' && 'linux/amd64' || 'linux/arm64' }}
push-manifests:
name: Create manifests (${{ github.event_name == 'pull_request' && 'dry run' || 'push' }})
runs-on: ubuntu-latest
needs: [build_image]
permissions:
contents: read
packages: write
steps:
- uses: envoyproxy/toolshed/gh-actions/[email protected]
with:
mounts: |
- src: /mnt/workspace
target: ${{ github.workspace }}
chown: "runner:runner"
- name: 'Checkout repository'
uses: actions/checkout@v5
- name: Get docker SHA
id: docker-sha
shell: bash
run: |
TAG_SHA=$(git log -1 --pretty=format:"%H" ./docker)
echo "sha=${TAG_SHA}" >> $GITHUB_OUTPUT
- name: Generate manifest configuration
id: config
uses: envoyproxy/toolshed/gh-actions/[email protected]
with:
input-format: yaml
filter: >-
{manifests: .}
input: |
## debian
# devtools
- name: envoy-build
tag: devtools-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
- arm64
artifact-pattern: oci-debian-{arch}/debian-devtools-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# ci
- name: envoy-build
tag: ci-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
- arm64
artifact-pattern: oci-debian-{arch}/debian-ci-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# worker
- name: envoy-build
tag: worker-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
- arm64
artifact-pattern: oci-debian-{arch}/debian-worker-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# worker (gcr)
- name: envoy-build
tag: worker-${{ steps.docker-sha.outputs.sha }}
registry: gcr.io/envoy-ci
architectures:
- amd64
- arm64
artifact-pattern: oci-debian-{arch}/debian-worker-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# docker
- name: envoy-build
tag: docker-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
- arm64
artifact-pattern: oci-debian-{arch}/debian-docker-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# test
- name: envoy-build
tag: test-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
- arm64
artifact-pattern: oci-debian-{arch}/debian-test-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# llvm
- name: envoy-build
tag: llvm-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
artifact-pattern: oci-debian-{arch}/debian-llvm-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# mobile
- name: envoy-build
tag: mobile-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
artifact-pattern: oci-debian-{arch}/debian-mobile-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
## ubuntu
# ci
- name: envoy-build-ubuntu
tag: ci-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- arm64
- amd64
artifact-pattern: oci-ubuntu-{arch}/ubuntu-ci-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# mobile
- name: envoy-build-ubuntu
tag: mobile-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
artifact-pattern: oci-ubuntu-{arch}/ubuntu-mobile-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# test
- name: envoy-build-ubuntu
tag: test-${{ steps.docker-sha.outputs.sha }}
registry: docker.io/envoyproxy
architectures:
- amd64
artifact-pattern: oci-ubuntu-{arch}/ubuntu-test-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
# full
- name: envoy-build-ubuntu
tag: full-f8d1fd9bdac3a7843d1e69816456648989d238be
registry: docker.io/envoyproxy
architectures:
- amd64
- arm64
artifact-pattern: oci-ubuntu-{arch}/ubuntu-full-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
additional-tags:
- ${{ steps.docker-sha.outputs.sha }}
# full (gcr)
- name: envoy-build
tag: ${{ steps.docker-sha.outputs.sha }}
registry: gcr.io/envoy-ci
architectures:
- amd64
- arm64
artifact-pattern: oci-ubuntu-{arch}/ubuntu-full-${{ steps.docker-sha.outputs.sha }}-{arch}.tar
- name: Collect and push OCI artifacts
uses: envoyproxy/toolshed/gh-actions/oci/[email protected]
with:
manifest-config: ${{ steps.config.outputs.value }}
dry-run: ${{ github.event_name == 'pull_request' }}
dockerhub-username: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && secrets.DOCKERHUB_USERNAME || '' }}
dockerhub-password: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && secrets.DOCKERHUB_PASSWORD || '' }}
gcr-key: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && secrets.GCP_SERVICE_ACCOUNT_KEY || '' }}