Skip to content

Commit 8a926cc

Browse files
committed
Restore -rc tags in tests, improve release doc
1 parent 8cb7c5b commit 8a926cc

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ jobs:
287287
k8s-version: ${{ matrix.k8s-version }}
288288
enable-experimental: ${{ matrix.enable-experimental }}
289289
production-release: ${{ inputs.is_production_release == true && (inputs.dry_run == false || inputs.dry_run == null) }}
290+
release_version: ${{ inputs.release_version }}
290291
secrets: inherit
291292
permissions:
292293
contents: write

.github/workflows/conformance.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ on:
1616
required: false
1717
type: boolean
1818
default: false
19+
release_version:
20+
required: false
21+
type: string
22+
default: ''
1923

2024
defaults:
2125
run:
@@ -66,6 +70,8 @@ jobs:
6670
type=edge
6771
type=schedule
6872
type=ref,event=pr
73+
type=ref,event=branch,suffix=-rc,enable=${{ startsWith(github.ref, 'refs/heads/release') && !inputs.production-release }}
74+
type=raw,value={{inputs.release_version}},enable=${{ inputs.production-release && inputs.release_version != '' }}
6975
7076
- name: NGINX Docker meta
7177
id: nginx-meta
@@ -78,6 +84,8 @@ jobs:
7884
type=edge
7985
type=schedule
8086
type=ref,event=pr
87+
type=ref,event=branch,suffix=-rc,enable=${{ startsWith(github.ref, 'refs/heads/release') && !inputs.production-release }}
88+
type=raw,value={{inputs.release_version}},enable=${{ inputs.production-release && inputs.release_version != '' }}
8189
8290
- name: Build binary
8391
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0

.github/workflows/functional.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ jobs:
5656
type=schedule
5757
type=edge
5858
type=ref,event=pr
59+
type=ref,event=branch,suffix=-rc,enable=${{ startsWith(github.ref, 'refs/heads/release') }}
5960
6061
- name: NGINX Docker meta
6162
id: nginx-meta
@@ -68,6 +69,7 @@ jobs:
6869
type=edge
6970
type=schedule
7071
type=ref,event=pr
72+
type=ref,event=branch,suffix=-rc,enable=${{ startsWith(github.ref, 'refs/heads/release') }}
7173
7274
- name: Build binary
7375
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0

docs/developer/release-process.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ To create a new release, follow these steps:
4040
format `Release X.Y.Z`.
4141
2. Stop merging any new work into the main branch.
4242
3. Create a release branch following the `release-X.Y` naming convention.
43+
- Once the release branch is created, reach out to the infra team to get it added to the runner permissions.
4344
4. Once the release branch pipeline completes, run tests using the `release-X.X-rc` images that are pushed to Github (for example, `release-1.3-rc`).
4445
1. Kick off the [longevity tests](https://github.com/nginx/nginx-gateway-fabric/blob/main/tests/README.md#longevity-testing) for both OSS and Plus. You'll need to create two clusters and VMs for this. Before running, update your `vars.env` file with the proper image tag and prefixes. NGF and nginx images will be available from `ghcr.io`, and nginx plus will be available in GCP (`us-docker.pkg.dev/<GCP_PROJECT_ID>/nginx-gateway-fabric/nginx-plus`). These tests need to run for 4 days before releasing. The results should be committed to the main branch and then cherry-picked to the release branch.
4546
2. Kick off the [NFR workflow](https://github.com/nginx/nginx-gateway-fabric/actions/workflows/nfr.yml) in the browser. For `image_tag`, use `release-X.X-rc`, and for `version`, use the upcoming `X.Y.Z` NGF version. Run the workflow on the new release branch. This will run all of the NFR tests which are automated and open a PR with the results files when it is complete. Review this PR and make any necessary changes before merging. Once merged, be sure to cherry-pick the commit to the main branch as well (the original PR targets the release branch).
@@ -55,7 +56,7 @@ To create a new release, follow these steps:
5556
created. If included, use the Release Notes specified in a PR.
5657
- If the supported Gateway API minor version has changed since the last release, add a note to the release notes explaining if the previous version is no longer supported.
5758
- Merge the release PR once it has received all necessary approvals.
58-
6. Run the [Production Release](https://github.com/nginx/nginx-gateway-fabric/actions/workflows/production-release.yml) workflow with the correct tag e.g. `v2.1.0`
59+
6. Once you are ready to release, run the [Production Release](https://github.com/nginx/nginx-gateway-fabric/actions/workflows/production-release.yml) workflow with the correct tag e.g. `v2.1.0`. (Note: It is also possible to do a dry run of the production release workflow for verification if required. This will not push the tag, images, and chart, and won't publish the release)
5960
As a result, the CI/CD pipeline will:
6061
- Create and push the tag
6162
- Build NGF, NGINX and NGINX Plus container images with the release tag `X.Y.Z` and push them to the registries.

0 commit comments

Comments
 (0)