From 44e3dba1eac93fe423dd2636bdf31b3efc0d1902 Mon Sep 17 00:00:00 2001 From: Colin Griffin Date: Fri, 10 May 2024 14:52:05 -0400 Subject: [PATCH] add new release workflow --- .github/workflows/build-extension-charts.yml | 129 +++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 .github/workflows/build-extension-charts.yml diff --git a/.github/workflows/build-extension-charts.yml b/.github/workflows/build-extension-charts.yml new file mode 100644 index 0000000..00da975 --- /dev/null +++ b/.github/workflows/build-extension-charts.yml @@ -0,0 +1,129 @@ +name: Build and Release Extension Charts + +on: + workflow_dispatch: + release: + types: [released] + +env: + ACTIONS_RUNNER_DEBUG: false + CI_COMMIT_MESSAGE: CI Build Artifacts + TARGET_BRANCH: gh-pages + +defaults: + run: + shell: bash + working-directory: ./ + +jobs: + build-extension-artifact: + name: Build extension artifact + runs-on: ubuntu-latest + permissions: + actions: write + contents: read + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Configure Git + run: | + git config user.name 'github-actions[bot]' + git config user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Setup Helm + uses: azure/setup-helm@v3 + with: + version: v3.8.0 + + - name: Setup yq + uses: chrisdickinson/setup-yq@v1.0.1 + with: + yq-version: v4.34.2 + + - name: Setup Nodejs and npm + uses: actions/setup-node@v3 + with: + node-version: '16' + + - name: Setup yarn + run: npm install -g yarn + + - name: Setup Nodejs with yarn caching + uses: actions/setup-node@v3 + with: + node-version: '16' + cache: yarn + + - name: Install dependencies + run: yarn + + - name: Parse Extension Name + if: github.ref_type == 'tag' + id: parsed-name + env: + GH_TOKEN: ${{ github.token }} + run: | + chmod +x ./node_modules/@rancher/shell/scripts/extension/parse-tag-name + yarn parse-tag-name ${{ github.ref_name }} ${{ github.run_id }} "charts" + + - name: Run build script + shell: bash + id: build_script + run: | + publish="yarn publish-pkgs -s ${{ github.repository }} -b ${{ env.TARGET_BRANCH }}" + + if [[ -n "${{ github.ref_name }}" ]]; then + publish="$publish -t ${{ github.ref_name }}" + fi + + $publish + + - name: Upload charts artifact + if: github.ref_type == 'tag' || (github.ref == 'refs/heads/main' && github.event_name != 'pull_request') + uses: actions/upload-artifact@v3 + with: + name: charts + path: tmp + + release: + name: Release Build + if: github.ref_type == 'tag' || (github.ref == 'refs/heads/main' && github.event_name != 'pull_request') + needs: build-extension-artifact + runs-on: ubuntu-latest + permissions: + actions: write + contents: write + deployments: write + pages: write + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: "${{ env.TARGET_BRANCH }}" + + - name: Configure Git + run: | + git config user.name 'github-actions[bot]' + git config user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Download build artifact + uses: actions/download-artifact@v3 + with: + name: charts + + - name: Commit build + run: | + git add ./{assets,charts,extensions,index.yaml} + git commit -a -m "${{ env.CI_COMMIT_MESSAGE }}" + git push + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.4.1 + with: + charts_dir: ./charts/* + env: + CR_TOKEN: '${{ secrets.GITHUB_TOKEN }}' + CR_SKIP_EXISTING: true \ No newline at end of file