From df33f9a076bb4a2a680da13bd561a6ab177c6601 Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Tue, 7 Apr 2026 15:43:06 +0200 Subject: [PATCH 1/3] feat: automate releases with Pipelines-as-Code - Add PAC PipelineRun definition for incoming webhook-triggered releases using goreleaser to build binaries and create GitHub releases - Add patch-release GHA workflow with weekly branch scanning and manual dispatch to create tags and trigger PAC releases Signed-off-by: Vincent Demeester --- .github/workflows/patch-release.yaml | 254 +++++++++++++++++++++++++++ .tekton/release.yaml | 66 +++++++ 2 files changed, 320 insertions(+) create mode 100644 .github/workflows/patch-release.yaml create mode 100644 .tekton/release.yaml diff --git a/.github/workflows/patch-release.yaml b/.github/workflows/patch-release.yaml new file mode 100644 index 0000000000..4bb6746e0d --- /dev/null +++ b/.github/workflows/patch-release.yaml @@ -0,0 +1,254 @@ +name: Patch Release + +"on": + workflow_dispatch: + inputs: + branch: + description: "Release branch (e.g. release-v0.45.0)" + required: true + type: string + version: + description: "Version to release (e.g. v0.45.1)" + required: true + type: string + release_as_latest: + description: "Publish as latest release" + required: false + type: boolean + default: true + schedule: + # Weekly on Thursday at 10:00 UTC + - cron: "0 10 * * 4" + +permissions: {} + +env: + PAC_CONTROLLER_URL: "https://pac.infra.tekton.dev" + PAC_REPOSITORY_NAME: "tektoncd-cli" + # Ignore release branches older than this (major.minor) + MIN_RELEASE_VERSION: "0.40" + +jobs: + scan-release-branches: + name: Scan for unreleased commits + if: github.event_name == 'schedule' && github.repository_owner == 'tektoncd' + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.scan.outputs.matrix }} + has_releases: ${{ steps.scan.outputs.has_releases }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Scan release branches for new commits + id: scan + run: | + # CLI uses release-vX.Y.Z branch naming + latest_branch="" + latest_major=0 + latest_minor=0 + for ref in $(git branch -r --list 'origin/release-v*'); do + branch="${ref#origin/}" + if [[ "$branch" =~ release-v([0-9]+)\.([0-9]+)\.[0-9]+ ]]; then + major="${BASH_REMATCH[1]}" + minor="${BASH_REMATCH[2]}" + if [ "$major" -gt "$latest_major" ] || { [ "$major" -eq "$latest_major" ] && [ "$minor" -gt "$latest_minor" ]; }; then + latest_major=$major + latest_minor=$minor + latest_branch=$branch + fi + fi + done + echo "::notice::Latest release branch: ${latest_branch}" + + MIN_MAJOR="${MIN_RELEASE_VERSION%%.*}" + MIN_MINOR="${MIN_RELEASE_VERSION##*.}" + + releases=() + for ref in $(git branch -r --list 'origin/release-v*'); do + branch="${ref#origin/}" + + # Skip branches older than MIN_RELEASE_VERSION + if [[ "$branch" =~ release-v([0-9]+)\.([0-9]+)\.[0-9]+ ]]; then + major="${BASH_REMATCH[1]}" + minor="${BASH_REMATCH[2]}" + if [ "$major" -lt "$MIN_MAJOR" ] || { [ "$major" -eq "$MIN_MAJOR" ] && [ "$minor" -lt "$MIN_MINOR" ]; }; then + echo "::notice::Branch ${branch} is older than v${MIN_RELEASE_VERSION} — skipping" + continue + fi + fi + + # Find the latest tag on this branch + last_tag=$(git describe --tags --abbrev=0 --match 'v*' "$ref" 2>/dev/null || echo "") + if [ -z "$last_tag" ]; then + echo "::notice::Branch ${branch} has no tags — skipping" + continue + fi + + # Count commits since last tag + new_commits=$(git rev-list "${last_tag}..${ref}" --count) + if [ "$new_commits" -eq 0 ]; then + echo "::notice::Branch ${branch} has no new commits since ${last_tag}" + continue + fi + + # Calculate next patch version: v0.44.0 → v0.44.1 + next_version=$(echo "$last_tag" | awk -F. '{printf "%s.%s.%d", $1, $2, $3+1}') + + # Read tool versions from the branch + go_version=$(git show "${ref}:go.mod" | grep "^go " | awk '{ print $2 }') + golangci_version=$(git show "${ref}:tools/go.mod" | grep golangci-lint | awk '{ print $3 }') + + # Only the latest release branch publishes as latest + is_latest="false" + if [ "$branch" = "$latest_branch" ]; then + is_latest="true" + fi + + echo "::notice::Branch ${branch}: ${new_commits} new commits since ${last_tag} → ${next_version} (latest=${is_latest}, go=${go_version}, lint=${golangci_version})" + releases+=("{\"branch\":\"${branch}\",\"version\":\"${next_version}\",\"release_as_latest\":\"${is_latest}\",\"go_version\":\"${go_version}\",\"golangci_lint_version\":\"${golangci_version}\"}") + done + + if [ ${#releases[@]} -eq 0 ]; then + echo "matrix=[]" >> "$GITHUB_OUTPUT" + echo "has_releases=false" >> "$GITHUB_OUTPUT" + else + echo "matrix=[$(IFS=,; echo "${releases[*]}")]" >> "$GITHUB_OUTPUT" + echo "has_releases=true" >> "$GITHUB_OUTPUT" + fi + + create-tag-and-trigger: + name: "Release ${{ matrix.release.version }} (${{ matrix.release.branch }})" + needs: scan-release-branches + if: needs.scan-release-branches.outputs.has_releases == 'true' + runs-on: ubuntu-latest + permissions: + contents: write + strategy: + matrix: + release: ${{ fromJson(needs.scan-release-branches.outputs.matrix) }} + max-parallel: 1 + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ matrix.release.branch }} + + - name: Create and push version tag + env: + RELEASE_VERSION: ${{ matrix.release.version }} + run: | + # Write version to VERSION file (goreleaser reads from git tag, + # but the Makefile uses this file) + echo "${RELEASE_VERSION#v}" > VERSION + git config user.name "tekton-robot" + git config user.email "tekton-robot@tektoncd.com" + git add VERSION + git commit -sm "New version ${RELEASE_VERSION}" || echo "No VERSION changes" + git tag -a "${RELEASE_VERSION}" -m "Release ${RELEASE_VERSION}" + git push origin "${RELEASE_VERSION}" + git push origin "HEAD:${{ matrix.release.branch }}" + + - name: Trigger PAC incoming webhook + env: + PAC_INCOMING_SECRET: ${{ secrets.PAC_INCOMING_SECRET }} + RELEASE_BRANCH: ${{ matrix.release.branch }} + RELEASE_VERSION: ${{ matrix.release.version }} + RELEASE_AS_LATEST: ${{ matrix.release.release_as_latest }} + GO_VERSION: ${{ matrix.release.go_version }} + GOLANGCI_LINT_VERSION: ${{ matrix.release.golangci_lint_version }} + run: | + echo "::notice::Triggering release ${RELEASE_VERSION} on ${RELEASE_BRANCH} (latest=${RELEASE_AS_LATEST})" + curl -sf -X POST "${PAC_CONTROLLER_URL}/incoming" \ + -H "Content-Type: application/json" \ + -d '{ + "repository": "'"${PAC_REPOSITORY_NAME}"'", + "branch": "'"${RELEASE_BRANCH}"'", + "pipelinerun": "cli-release", + "secret": "'"${PAC_INCOMING_SECRET}"'", + "params": { + "version": "'"${RELEASE_VERSION}"'", + "release_as_latest": "'"${RELEASE_AS_LATEST}"'", + "go_version": "'"${GO_VERSION}"'", + "golangci_lint_version": "'"${GOLANGCI_LINT_VERSION}"'" + } + }' + echo "✅ Release triggered successfully" + + trigger-manual-release: + name: "Trigger ${{ inputs.version }} (${{ inputs.branch }})" + if: github.event_name == 'workflow_dispatch' && github.repository_owner == 'tektoncd' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + ref: ${{ inputs.branch }} + + - name: Validate inputs + env: + INPUT_BRANCH: ${{ inputs.branch }} + INPUT_VERSION: ${{ inputs.version }} + run: | + # Validate branch format (CLI uses release-vX.Y.Z) + if [[ ! "${INPUT_BRANCH}" =~ ^release-v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::error::Invalid branch format: ${INPUT_BRANCH}. Expected: release-vX.Y.Z" + exit 1 + fi + # Validate version format + if [[ ! "${INPUT_VERSION}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::error::Invalid version format: ${INPUT_VERSION}. Expected: vX.Y.Z" + exit 1 + fi + + - name: Read tool versions + id: versions + run: | + GO_VERSION=$(head -3 go.mod | grep "^go " | awk '{ print $2 }') + GOLANGCI_VERSION=$(grep golangci-lint tools/go.mod | awk '{ print $3 }') + echo "go_version=${GO_VERSION}" >> "$GITHUB_OUTPUT" + echo "golangci_lint_version=${GOLANGCI_VERSION}" >> "$GITHUB_OUTPUT" + echo "::notice::Go version: ${GO_VERSION}, golangci-lint: ${GOLANGCI_VERSION}" + + - name: Create and push version tag + env: + INPUT_VERSION: ${{ inputs.version }} + INPUT_BRANCH: ${{ inputs.branch }} + run: | + # Write version to VERSION file + echo "${INPUT_VERSION#v}" > VERSION + git config user.name "tekton-robot" + git config user.email "tekton-robot@tektoncd.com" + git add VERSION + git commit -sm "New version ${INPUT_VERSION}" || echo "No VERSION changes" + git tag -a "${INPUT_VERSION}" -m "Release ${INPUT_VERSION}" + git push origin "${INPUT_VERSION}" + git push origin "HEAD:${INPUT_BRANCH}" + + - name: Trigger PAC incoming webhook + env: + PAC_INCOMING_SECRET: ${{ secrets.PAC_INCOMING_SECRET }} + INPUT_BRANCH: ${{ inputs.branch }} + INPUT_VERSION: ${{ inputs.version }} + INPUT_RELEASE_AS_LATEST: ${{ inputs.release_as_latest }} + GO_VERSION: ${{ steps.versions.outputs.go_version }} + GOLANGCI_LINT_VERSION: ${{ steps.versions.outputs.golangci_lint_version }} + run: | + echo "::notice::Triggering release ${INPUT_VERSION} on ${INPUT_BRANCH} (latest=${INPUT_RELEASE_AS_LATEST})" + curl -sf -X POST "${PAC_CONTROLLER_URL}/incoming" \ + -H "Content-Type: application/json" \ + -d '{ + "repository": "'"${PAC_REPOSITORY_NAME}"'", + "branch": "'"${INPUT_BRANCH}"'", + "pipelinerun": "cli-release", + "secret": "'"${PAC_INCOMING_SECRET}"'", + "params": { + "version": "'"${INPUT_VERSION}"'", + "release_as_latest": "'"${INPUT_RELEASE_AS_LATEST}"'", + "go_version": "'"${GO_VERSION}"'", + "golangci_lint_version": "'"${GOLANGCI_LINT_VERSION}"'" + } + }' + echo "✅ Release triggered successfully" diff --git a/.tekton/release.yaml b/.tekton/release.yaml new file mode 100644 index 0000000000..fd26f882d4 --- /dev/null +++ b/.tekton/release.yaml @@ -0,0 +1,66 @@ +# Copyright 2026 The Tekton Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This PipelineRun is triggered via PAC incoming webhooks for releases. +# It is invoked either manually (via GitHub Actions workflow_dispatch) +# or on a cron schedule when new commits are detected on a release +# branch since the last tag. +# +# The CLI release pipeline uses goreleaser to build cross-platform +# binaries, create the GitHub release, and publish to Homebrew. +# +# Before triggering this PipelineRun, the caller (patch-release.yaml +# workflow) must have created and pushed the version tag (e.g. v0.45.1) +# so that goreleaser can detect it. +--- +apiVersion: tekton.dev/v1 +kind: PipelineRun +metadata: + name: cli-release + annotations: + pipelinesascode.tekton.dev/on-event: "[incoming]" + pipelinesascode.tekton.dev/on-target-branch: "[release-v*]" + pipelinesascode.tekton.dev/pipeline: "tekton/release-pipeline.yml" + pipelinesascode.tekton.dev/max-keep-runs: "5" + pipelinesascode.tekton.dev/task: "[git-clone, golangci-lint, golang-test, golang-build, goreleaser]" + pipelinesascode.tekton.dev/task-1: "tekton/get-version.yaml" +spec: + pipelineRef: + name: cli-release-pipeline + params: + - name: url + value: "{{ repo_url }}" + - name: revision + value: "{{ version }}" + - name: package + value: github.com/tektoncd/cli + - name: github-token-secret + value: bot-token-github + - name: github-token-secret-key + value: bot-token + - name: golangci-lint-version + value: "{{ golangci_lint_version }}" + - name: go-version + value: "{{ go_version }}" + timeouts: + pipeline: 2h0m0s + workspaces: + - name: shared-workspace + volumeClaimTemplate: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi From 804d285a877aab37bb51f9a9c723ddd05ca73b09 Mon Sep 17 00:00:00 2001 From: Vincent Demeester Date: Tue, 21 Apr 2026 22:38:14 +0200 Subject: [PATCH 2/3] Use dedicated release ServiceAccount in PAC release pipeline The wait-for-chains task needs to list/get TaskRuns to check Tekton Chains signing status. The default SA lacks these RBAC permissions, causing wait-for-chains to return signed='error' and skipping the create-draft-release task. Use the 'release' SA provisioned in tektoncd/plumbing#3335 with the required RBAC permissions. --- .tekton/release.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.tekton/release.yaml b/.tekton/release.yaml index fd26f882d4..c4c4e6e5a8 100644 --- a/.tekton/release.yaml +++ b/.tekton/release.yaml @@ -36,6 +36,8 @@ metadata: pipelinesascode.tekton.dev/task: "[git-clone, golangci-lint, golang-test, golang-build, goreleaser]" pipelinesascode.tekton.dev/task-1: "tekton/get-version.yaml" spec: + taskRunTemplate: + serviceAccountName: release pipelineRef: name: cli-release-pipeline params: From 2246012da6169e7adb53d6939995341533b6f4b4 Mon Sep 17 00:00:00 2001 From: divyansh42 Date: Mon, 13 Jul 2026 21:40:57 +0530 Subject: [PATCH 3/3] Align PAC release with pipeline/operator conventions - Fix branch scan regex to match release-vX.Y.x branches (the canonical naming convention), skipping old-style release-vX.Y.Z - Rename PipelineRun to release-patch and .tekton file to release-patch.yaml matching tektoncd/pipeline and tektoncd/operator - Rename tekton/release-pipeline.yml to .yaml for consistency - Bump actions/checkout from v6.0.2 to v7.0.0 - Update branch validation in manual trigger to expect release-vX.Y.x Signed-off-by: divyansh42 Assisted-by: Claude Opus 4.6 (via Cursor) --- .github/workflows/patch-release.yaml | 42 ++++++++++--------- .tekton/{release.yaml => release-patch.yaml} | 16 +++---- ...ase-pipeline.yml => release-pipeline.yaml} | 0 tekton/release.sh | 2 +- tekton/rpmbuild/README.md | 2 +- 5 files changed, 33 insertions(+), 29 deletions(-) rename .tekton/{release.yaml => release-patch.yaml} (82%) rename tekton/{release-pipeline.yml => release-pipeline.yaml} (100%) diff --git a/.github/workflows/patch-release.yaml b/.github/workflows/patch-release.yaml index 4bb6746e0d..c8719fd5e7 100644 --- a/.github/workflows/patch-release.yaml +++ b/.github/workflows/patch-release.yaml @@ -4,7 +4,7 @@ name: Patch Release workflow_dispatch: inputs: branch: - description: "Release branch (e.g. release-v0.45.0)" + description: "Release branch (e.g. release-v0.45.x)" required: true type: string version: @@ -37,7 +37,7 @@ jobs: matrix: ${{ steps.scan.outputs.matrix }} has_releases: ${{ steps.scan.outputs.has_releases }} steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: fetch-depth: 0 persist-credentials: false @@ -45,13 +45,14 @@ jobs: - name: Scan release branches for new commits id: scan run: | - # CLI uses release-vX.Y.Z branch naming + # Determine which release branch is the latest (highest version) latest_branch="" latest_major=0 latest_minor=0 for ref in $(git branch -r --list 'origin/release-v*'); do branch="${ref#origin/}" - if [[ "$branch" =~ release-v([0-9]+)\.([0-9]+)\.[0-9]+ ]]; then + # Extract major.minor from release-vX.Y.x + if [[ "$branch" =~ release-v([0-9]+)\.([0-9]+)\.x ]]; then major="${BASH_REMATCH[1]}" minor="${BASH_REMATCH[2]}" if [ "$major" -gt "$latest_major" ] || { [ "$major" -eq "$latest_major" ] && [ "$minor" -gt "$latest_minor" ]; }; then @@ -70,20 +71,23 @@ jobs: for ref in $(git branch -r --list 'origin/release-v*'); do branch="${ref#origin/}" + # Only process release-vX.Y.x branches; skip old-style release-vX.Y.Z + if [[ ! "$branch" =~ release-v([0-9]+)\.([0-9]+)\.x ]]; then + continue + fi + major="${BASH_REMATCH[1]}" + minor="${BASH_REMATCH[2]}" + # Skip branches older than MIN_RELEASE_VERSION - if [[ "$branch" =~ release-v([0-9]+)\.([0-9]+)\.[0-9]+ ]]; then - major="${BASH_REMATCH[1]}" - minor="${BASH_REMATCH[2]}" - if [ "$major" -lt "$MIN_MAJOR" ] || { [ "$major" -eq "$MIN_MAJOR" ] && [ "$minor" -lt "$MIN_MINOR" ]; }; then - echo "::notice::Branch ${branch} is older than v${MIN_RELEASE_VERSION} — skipping" - continue - fi + if [ "$major" -lt "$MIN_MAJOR" ] || { [ "$major" -eq "$MIN_MAJOR" ] && [ "$minor" -lt "$MIN_MINOR" ]; }; then + echo "::notice::Branch ${branch} is older than v${MIN_RELEASE_VERSION} — skipping" + continue fi # Find the latest tag on this branch last_tag=$(git describe --tags --abbrev=0 --match 'v*' "$ref" 2>/dev/null || echo "") if [ -z "$last_tag" ]; then - echo "::notice::Branch ${branch} has no tags — skipping" + echo "::notice::Branch ${branch} has no tags — skipping (initial release handled by branch creation)" continue fi @@ -131,7 +135,7 @@ jobs: release: ${{ fromJson(needs.scan-release-branches.outputs.matrix) }} max-parallel: 1 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: ref: ${{ matrix.release.branch }} @@ -165,7 +169,7 @@ jobs: -d '{ "repository": "'"${PAC_REPOSITORY_NAME}"'", "branch": "'"${RELEASE_BRANCH}"'", - "pipelinerun": "cli-release", + "pipelinerun": "release-patch", "secret": "'"${PAC_INCOMING_SECRET}"'", "params": { "version": "'"${RELEASE_VERSION}"'", @@ -183,7 +187,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: ref: ${{ inputs.branch }} @@ -192,9 +196,9 @@ jobs: INPUT_BRANCH: ${{ inputs.branch }} INPUT_VERSION: ${{ inputs.version }} run: | - # Validate branch format (CLI uses release-vX.Y.Z) - if [[ ! "${INPUT_BRANCH}" =~ ^release-v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "::error::Invalid branch format: ${INPUT_BRANCH}. Expected: release-vX.Y.Z" + # Validate branch format + if [[ ! "${INPUT_BRANCH}" =~ ^release-v[0-9]+\.[0-9]+\.x$ ]]; then + echo "::error::Invalid branch format: ${INPUT_BRANCH}. Expected: release-vX.Y.x" exit 1 fi # Validate version format @@ -242,7 +246,7 @@ jobs: -d '{ "repository": "'"${PAC_REPOSITORY_NAME}"'", "branch": "'"${INPUT_BRANCH}"'", - "pipelinerun": "cli-release", + "pipelinerun": "release-patch", "secret": "'"${PAC_INCOMING_SECRET}"'", "params": { "version": "'"${INPUT_VERSION}"'", diff --git a/.tekton/release.yaml b/.tekton/release-patch.yaml similarity index 82% rename from .tekton/release.yaml rename to .tekton/release-patch.yaml index c4c4e6e5a8..f3ea87a290 100644 --- a/.tekton/release.yaml +++ b/.tekton/release-patch.yaml @@ -12,13 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -# This PipelineRun is triggered via PAC incoming webhooks for releases. -# It is invoked either manually (via GitHub Actions workflow_dispatch) -# or on a cron schedule when new commits are detected on a release -# branch since the last tag. +# This PipelineRun is triggered via PAC incoming webhooks for patch +# releases on existing release branches. It is invoked either manually +# (via GitHub Actions workflow_dispatch) or on a cron schedule when +# new commits are detected on a release branch since the last tag. # -# The CLI release pipeline uses goreleaser to build cross-platform -# binaries, create the GitHub release, and publish to Homebrew. +# The version, go_version, and golangci_lint_version parameters are +# passed dynamically through the incoming webhook payload. # # Before triggering this PipelineRun, the caller (patch-release.yaml # workflow) must have created and pushed the version tag (e.g. v0.45.1) @@ -27,11 +27,11 @@ apiVersion: tekton.dev/v1 kind: PipelineRun metadata: - name: cli-release + name: release-patch annotations: pipelinesascode.tekton.dev/on-event: "[incoming]" pipelinesascode.tekton.dev/on-target-branch: "[release-v*]" - pipelinesascode.tekton.dev/pipeline: "tekton/release-pipeline.yml" + pipelinesascode.tekton.dev/pipeline: "tekton/release-pipeline.yaml" pipelinesascode.tekton.dev/max-keep-runs: "5" pipelinesascode.tekton.dev/task: "[git-clone, golangci-lint, golang-test, golang-build, goreleaser]" pipelinesascode.tekton.dev/task-1: "tekton/get-version.yaml" diff --git a/tekton/release-pipeline.yml b/tekton/release-pipeline.yaml similarity index 100% rename from tekton/release-pipeline.yml rename to tekton/release-pipeline.yaml diff --git a/tekton/release.sh b/tekton/release.sh index 5ffa996365..0f6eb5df14 100755 --- a/tekton/release.sh +++ b/tekton/release.sh @@ -131,7 +131,7 @@ if ! kubectl -n ${TARGET_NAMESPACE} get secret ${SECRET_NAME} -o name >/dev/null kubectl -n ${TARGET_NAMESPACE} create secret generic ${SECRET_NAME} --from-literal=bot-token=${github_token} fi -kubectl -n ${TARGET_NAMESPACE} apply -f ./tekton/release-pipeline.yml +kubectl -n ${TARGET_NAMESPACE} apply -f ./tekton/release-pipeline.yaml sleep 2 diff --git a/tekton/rpmbuild/README.md b/tekton/rpmbuild/README.md index 4c0faac8d1..1b38700512 100644 --- a/tekton/rpmbuild/README.md +++ b/tekton/rpmbuild/README.md @@ -27,7 +27,7 @@ dnf install tektoncd-cli USAGE ===== -Same as when you use the [release.pipeline.yaml](../release-pipeline.yml), you +Same as when you use the [release.pipeline.yaml](../release-pipeline.yaml), you need to have a PipelineResource for your git repository. See [here](../release-pipeline-run.yml) for an example.