Skip to content

build(go): Bump github.com/traefik/traefik/v3 from 3.4.5 to 3.6.7 #47

build(go): Bump github.com/traefik/traefik/v3 from 3.4.5 to 3.6.7

build(go): Bump github.com/traefik/traefik/v3 from 3.4.5 to 3.6.7 #47

Workflow file for this run

name: Build
on:
release:
types: [published]
pull_request:
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-image:
name: Build Image
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Assemble metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
# We want to set the following tags:
# - `main` if executed for build on main branch
# - SemVer when running for a release
tags: |
type=ref,enable=${{ github.ref_name == 'main' }},event=branch
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
- name: Login to GitHub container registry
# We only need to log in if we want to push to GHCR
if: github.event_name == 'release' || github.event_name == 'push'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Build multi-platform image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
# Only push when building for a tag or the main branch
push: ${{ github.event_name == 'release' || github.event_name == 'push' }}
tags: ${{ steps.meta.outputs.tags }}
# Only export and upload the image if used for testing
- name: Export image for test platform
if: github.event_name != 'release'
uses: docker/build-push-action@v6
with:
context: .
push: false
outputs: type=docker,dest=/tmp/image.tar
- name: Upload image for testing
uses: actions/upload-artifact@v4
if: github.event_name != 'release'
with:
name: docker-image
path: /tmp/image.tar
helm-chart:
name: Build Helm Chart
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup pixi
uses: prefix-dev/[email protected]
with:
environments: default
activate-environment: true
- name: Download Dependencies
run: helm dependency build
working-directory: ./chart
- name: Package Chart
run: |
VERSION=${{ github.event_name == 'release' && github.ref_name || 'v1.0.0' }}
helm package . \
--app-version ${VERSION#v} \
--version ${VERSION#v}
working-directory: ./chart
- name: Login to GitHub OCI Registry
if: github.event_name == 'release'
run: |
echo ${{ github.token }} | \
helm registry login ghcr.io --username ${{ github.actor }} --password-stdin
- name: Push Chart
if: github.event_name == 'release'
run: |
VERSION=${{ github.ref_name }}
helm push switchboard-${VERSION#v}.tgz oci://ghcr.io/${{ github.actor }}/charts
working-directory: ./chart
e2e-tests:
name: End-to-end Tests
if: github.event_name != 'release'
needs: build-image
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Download image for testing
uses: actions/download-artifact@v5
with:
name: docker-image
path: /tmp
- name: Setup pixi
uses: prefix-dev/[email protected]
with:
environments: default
activate-environment: true
- name: Setup Kind cluster
run: |
pixi run cluster-create
pixi run cluster-setup
- name: Run load balancer controller
run: cloud-provider-kind &
- name: Import Docker image
run: |
IMAGE_ID=$(docker load -i /tmp/image.tar | rev | cut -d' ' -f1 | rev)
docker tag $IMAGE_ID localhost:5001/switchboard:dev
docker push localhost:5001/switchboard:dev
- name: Run tests
run: pixi run test-e2e "localhost:5001/switchboard" "dev"