diff --git a/.github/workflows/index-render-template-next.yaml b/.github/workflows/index-render-template-next.yaml new file mode 100644 index 000000000..454624a82 --- /dev/null +++ b/.github/workflows/index-render-template-next.yaml @@ -0,0 +1,87 @@ +name: index-render-template-next + +on: + workflow_dispatch: {} + push: + branch: + - "next" + branches-ignore: + - "konflux/**/next**" + paths: + - .konflux/olm-catalog/index/** + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-matrix: + runs-on: ubuntu-latest + if: github.repository_owner == 'openshift-pipelines' # do not run this elsewhere + steps: + - name: Checkout the repository + uses: actions/checkout@v4 + with: + ref: next + - id: set-matrix + run: | + pushd .konflux/olm-catalog/index + VERSIONS=$(ls -d v* | jq -R -s -c 'split("\n")[:-1]') + popd + echo "Versions: ${VERSIONS}" + echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT + outputs: + versions: ${{ steps.set-matrix.outputs.versions }} + generate-catalog: + needs: build-matrix + if: github.repository_owner == 'openshift-pipelines' # do not run this elsewhere + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + version: ${{ fromJSON(needs.build-matrix.outputs.versions) }} + permissions: + contents: write + pull-requests: write + steps: + - name: Checkout the repository + uses: actions/checkout@v4 + with: + ref: next + - name: Generate ${{matrix.version}} catalog + run: | + echo ${{matrix.version}} + curl -sSfLo /usr/local/bin/opm "https://github.com/operator-framework/operator-registry/releases/download/v1.47.0/linux-amd64-opm" + chmod +x /usr/local/bin/opm + + BUNDLE_IMAGE=$(jq -r '.entries[] | select(.schema == "olm.bundle") | .image' .konflux/olm-catalog/index/${{matrix.version}}/catalog-template.json) + BUNDLE_VERSION=$(opm render --skip-tls-verify -o json ${BUNDLE_IMAGE} | jq -r '.name' | awk -F 'v' '{ print $2 }') + + # Update catalog-template + sed -i "s%5.0.5-[0-9]\+%${BUNDLE_VERSION}%g" .konflux/olm-catalog/index/${{matrix.version}}/catalog-template.json + + opm alpha render-template basic .konflux/olm-catalog/index/${{matrix.version}}/catalog-template.json > .konflux/olm-catalog/index/${{matrix.version}}/catalog/openshift-pipelines-operator-rh/catalog.json + - name: Commit new changes + run: | + git config user.name openshift-pipelines-bot + git config user.email pipelines-extcomm@redhat.com + git checkout -b actions/index-next/${{matrix.version}} + + git add .konflux/olm-catalog/index/${{matrix.version}}/catalog + + if [[ -z $(git status --porcelain --untracked-files=no) ]]; then + echo "No change, exiting" + exit 0 + fi + + git commit -F- <