Skip to content

[release/v1.6] cherry pick release notes + bump version (#8867) #118

[release/v1.6] cherry pick release notes + bump version (#8867)

[release/v1.6] cherry pick release notes + bump version (#8867) #118

Workflow file for this run

name: Release
permissions:
contents: read
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- "v*.*.*"
# Exclude rc.0 tags — they’re not real release candidates but markers for main
# See: https://github.com/envoyproxy/gateway/issues/7248
- "!v*.*.*-rc.0"
jobs:
# For push event, we run benchmark test here because we need to
# include benchmark report in the release.
benchmark-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./tools/github-actions/setup-deps
# Benchmark
- name: Run Benchmark tests
env:
KIND_NODE_TAG: v1.29.10
IMAGE_PULL_POLICY: IfNotPresent
# Args for benchmark test
BENCHMARK_BASELINE_RPS: 100
BENCHMARK_CONNECTIONS: 100
BENCHMARK_DURATION: 90
BENCHMARK_CPU_LIMITS: 1000m
BENCHMARK_MEMORY_LIMITS: 2000Mi
BENCHMARK_REPORT_DIR: benchmark_report
BENCHMARK_RENDER_PNG: "false"
run: make benchmark
- name: Package benchmark report
run: cd test/benchmark && zip -r benchmark_report.zip benchmark_report
- name: Upload Benchmark Report
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: benchmark_report
path: test/benchmark/benchmark_report.zip
release:
runs-on: ubuntu-22.04
needs: [benchmark-test]
permissions:
contents: write
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: ./tools/github-actions/reclaim-storage
- name: Extract Release Tag and Commit SHA
id: vars
shell: bash
run: |
echo "release_tag=$(echo ${GITHUB_REF##*/})" >> $GITHUB_ENV
echo "without_v_release_tag=$(echo ${GITHUB_REF##*/v})" >> $GITHUB_ENV
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Login to DockerHub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Retag and push existing gateway-dev image
run: |
skopeo copy --all docker://docker.io/envoyproxy/gateway-dev:${{ env.sha_short }} docker://docker.io/envoyproxy/gateway:${{ env.release_tag }}
- name: Generate Release Artifacts
run: IMAGE_PULL_POLICY=IfNotPresent make generate-artifacts IMAGE=envoyproxy/gateway TAG=${{ env.release_tag }} OUTPUT_DIR=release-artifacts
- name: Build and Push EG Release Helm Chart
run: |
IMAGE_PULL_POLICY=IfNotPresent OCI_REGISTRY=oci://docker.io/envoyproxy CHART_VERSION=${{ env.release_tag }} IMAGE=docker.io/envoyproxy/gateway TAG=${{ env.release_tag }} make helm-package helm-push
IMAGE_PULL_POLICY=IfNotPresent OCI_REGISTRY=oci://docker.io/envoyproxy CHART_VERSION=${{ env.without_v_release_tag }} IMAGE=docker.io/envoyproxy/gateway TAG=${{ env.release_tag }} make helm-package helm-push
- name: Download Benchmark Report
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
with:
name: benchmark_report
path: release-artifacts
# Make the JSON report be part of the release, so it would be easy to integrate with
# Performance Benchmark Report Explorer
- name: Unzip Benchmark Report
run: |
cd release-artifacts && unzip benchmark_report.zip
- name: Build egctl multiarch binaries
run: |
make build-multiarch
tar -zcvf envoy-gateway_${{ env.release_tag }}_linux_amd64.tar.gz bin/linux/amd64/envoy-gateway
tar -zcvf envoy-gateway_${{ env.release_tag }}_linux_arm64.tar.gz bin/linux/arm64/envoy-gateway
tar -zcvf envoy-gateway_${{ env.release_tag }}_darwin_amd64.tar.gz bin/darwin/amd64/envoy-gateway
tar -zcvf envoy-gateway_${{ env.release_tag }}_darwin_arm64.tar.gz bin/darwin/arm64/envoy-gateway
tar -zcvf egctl_${{ env.release_tag }}_linux_amd64.tar.gz bin/linux/amd64/egctl
tar -zcvf egctl_${{ env.release_tag }}_linux_arm64.tar.gz bin/linux/arm64/egctl
tar -zcvf egctl_${{ env.release_tag }}_darwin_amd64.tar.gz bin/darwin/amd64/egctl
tar -zcvf egctl_${{ env.release_tag }}_darwin_arm64.tar.gz bin/darwin/arm64/egctl
zip -r egctl_${{ env.release_tag }}_windows_amd64.zip bin/windows/amd64/egctl
- name: Upload Release Manifests
uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe # v2.4.2
with:
make_latest: false
files: |
release-artifacts/install.yaml
release-artifacts/quickstart.yaml
release-artifacts/envoy-gateway-crds.yaml
release-artifacts/release-notes.yaml
release-artifacts/benchmark_report.zip
release-artifacts/benchmark_report/benchmark_result.json
envoy-gateway_${{ env.release_tag }}_linux_amd64.tar.gz
envoy-gateway_${{ env.release_tag }}_linux_arm64.tar.gz
envoy-gateway_${{ env.release_tag }}_darwin_amd64.tar.gz
envoy-gateway_${{ env.release_tag }}_darwin_arm64.tar.gz
egctl_${{ env.release_tag }}_linux_amd64.tar.gz
egctl_${{ env.release_tag }}_linux_arm64.tar.gz
egctl_${{ env.release_tag }}_darwin_amd64.tar.gz
egctl_${{ env.release_tag }}_darwin_arm64.tar.gz
egctl_${{ env.release_tag }}_windows_amd64.zip