You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
is about publishing a `ko` image, which hopefully we'll be able to move it._
212
+
213
+
### GitHub Action based approach:
214
+
215
+
The GitHub Actions workflow provides an alternative approach for automated nightly releases with enhanced CI/CD capabilities and better integration with GitHub infrastructure.
216
+
217
+
[The nightly release workflow](../.github/workflows/nightly-release.yaml) is triggered daily and uses:
218
+
219
+
- [release-nightly-pipeline.yaml](release-nightly-pipeline.yaml) - Tekton Pipeline for nightly releases
220
+
- [publish-nightly.yaml](publish-nightly.yaml) - Tekton Task for building and publishing nightly images
221
+
222
+
#### Key Features:
223
+
224
+
**Automated Scheduling:**
225
+
- Runs daily at 03:00 UTC via cron schedule
226
+
- Supports manual triggering with customizable parameters
227
+
- Intelligent change detection - only releases when there are recent commits (configurable)
228
+
229
+
**Multi-mode Operation:**
230
+
- **Production mode**: For `tektoncd/pipeline` repository with full release capabilities
231
+
- **Fork mode**: For testing in forks with isolated buckets and registries
232
+
233
+
#### Usage:
234
+
235
+
**Scheduled Release:**
236
+
The workflow runs automatically every night and will create a release if:
237
+
- There have been commits in the last 25 hours, OR
238
+
- Force release is enabled, OR
239
+
- It's manually triggered
240
+
241
+
**Manual Release:**
242
+
```bash
243
+
# Trigger via GitHub UI or CLI
244
+
gh workflow run nightly-release.yaml \
245
+
--field kubernetes_version=v1.33.0 \
246
+
--field force_release=true \
247
+
--field dry_run=false
248
+
```
249
+
250
+
**Fork Testing:**
251
+
For testing in forks, the workflow automatically:
252
+
- Uses a test bucket pattern: `gs://tekton-releases-nightly-{repo-owner}`
253
+
- Publishes to `ghcr.io/{owner}/pipeline/*` instead of production registry
254
+
- Skips certain production-only validations
255
+
256
+
#### Output:
257
+
258
+
The workflow generates:
259
+
- Container images tagged with `vYYYYMMDD-{sha7}` format
260
+
- Release YAML manifests uploaded to GCS bucket
261
+
- Multi-architecture image support
262
+
- Comprehensive build logs and artifacts
263
+
264
+
This approach provides better observability, easier debugging, and more flexible configuration compared to the traditional Tekton-only pipeline approach.
0 commit comments