generate-catalogs #61
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# This workflow generates the experimental catalog and pushes it to | |
# the publish branch. | |
name: generate-catalogs | |
on: | |
schedule: | |
- cron: "0 1 * * *" | |
workflow_dispatch: # allow manual triggering | |
jobs: | |
generate-experimental-catalog: | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'openshift-pipelines' # do not run this elsewhere | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/go | |
- name: Generate experimental catalog | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
go run ./cmd/catalog-cd generate --config ./experimental/externals.yaml experimental | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: experimental-catalog-artifact | |
path: experimental/ | |
retention-days: 3 # We don't need to keep them for long | |
generate-catalog: | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'openshift-pipelines' # do not run this elsewhere | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/go | |
- name: Generate catalog | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
go run ./cmd/catalog-cd generate --config ./externals.yaml stable | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: stable-catalog-artifact | |
path: stable/ | |
retention-days: 3 # We don't need to keep them for long | |
publish-catalog: | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'openshift-pipelines' # do not run this elsewhere | |
needs: | |
- generate-experimental-catalog | |
- generate-catalog | |
steps: | |
- name: Checkout "p" publish branch | |
uses: actions/checkout@v4 | |
with: | |
ref: p | |
- name: Checkout "main" branch | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
path: main | |
- name: Sync main "helper code" with p | |
run: | | |
# Clean existing | |
rm -fR automation Makefile .github | |
# Copy from main | |
cp -fR main/{automation,Makefile} . | |
mkdir -p .github/workflows | |
cp -fR main/.github/workflows/test* .github/workflows | |
- name: Clean old "generated" catalogs | |
run: | | |
# Remove experimental resources | |
rm -fR experimental/{tasks,pipelines}/* | |
# Remove "stable" resources | |
rm -fR {tasks,pipelines}/* | |
- name: Fetch generated experimental catalog | |
uses: actions/download-artifact@v3 | |
with: | |
name: experimental-catalog-artifact | |
path: experimental | |
- name: Fetch generated stable catalog | |
uses: actions/download-artifact@v3 | |
with: | |
name: stable-catalog-artifact | |
path: . | |
- name: Add experimental catalog to publish branch | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
CHANGES=$(git status -s) | |
if [[ -n "${CHANGES}" ]]; then | |
git status | |
git add tasks pipelines | |
git add experimental Makefile automation .github | |
git commit -m "Auto-update packages" | |
git pull --rebase --autostash | |
else | |
echo "No changes for the experimental catalog" | |
fi | |
- name: Create PR | |
id: create-pr | |
uses: peter-evans/create-pull-request@v5 | |
with: | |
base: p | |
delete-branch: true | |
add-paths: README.md # This is here just to force it to not commit anything | |
title: Experimental catalog changes | |
assignees: tekton-ecosystem-team | |
labels: approved, lgtm, ok-to-test # Automatically approved :) | |
# committer: ${{ env.GIT_COMMITTER_NAME }} ${{ env.GIT_COMMITTER_EMAIL }} | |
# author: ${{ env.GIT_AUTHOR_NAME }} ${{ env.GIT_AUTHOR_EMAIL }} | |
# body: ${{ steps.pr_body.outputs.content }} # TODO(vdemeester) Write git status from the artifact |