fix(drawio): update image docker.io/jgraph/drawio 30.2.6 → 30.2.7 (#4… #43171
This file contains hidden or 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
| name: "Charts/Website: Build-and-Release" | |
| concurrency: | |
| group: ${{ github.head_ref }}-charts-website-release | |
| on: | |
| workflow_call: | |
| workflow_dispatch: | |
| #pull_request: | |
| # paths: | |
| # - "charts/**" | |
| # - "website/**" | |
| push: | |
| branches: | |
| - master | |
| paths: | |
| - "charts/**" | |
| - "website/**" | |
| - ".github/workflows/charts-release.yaml" | |
| # Use `bash --noprofile --norc -exo pipefail` by default for all `run` steps in this workflow: | |
| # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaultsrun | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| check_changes: | |
| runs-on: | |
| group: default | |
| outputs: | |
| changes_detected: ${{ steps.filter.outputs.changed }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 | |
| - name: Filter paths | |
| id: filter | |
| uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4 | |
| with: | |
| list-files: json | |
| filters: | | |
| changed: | |
| - 'website/**' | |
| - '**/docs/**' | |
| - '**/Chart.yaml' | |
| release-helm: | |
| permissions: | |
| pull-requests: write | |
| name: "${{ github.ref == 'refs/heads/master' && '(Production)' || '(Preview)' }}" | |
| runs-on: | |
| group: default | |
| needs: check_changes | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Forgetool | |
| shell: bash | |
| env: | |
| GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
| run: |- | |
| TAG="" | |
| if RELEASES_JSON="$(curl -fsSL \ | |
| -H "Authorization: Bearer ${GITHUB_TOKEN}" \ | |
| -H "Accept: application/vnd.github+json" \ | |
| https://api.github.com/repos/trueforge-org/forgetool/releases/latest)"; then | |
| TAG="$(jq -r '.tag_name // empty' <<< "${RELEASES_JSON}")" | |
| fi | |
| [ -n "${TAG}" ] && [ "${TAG}" != "null" ] || { | |
| echo "Failed to determine latest stable forgetool release tag, falling back to v4.1.1" | |
| TAG="v4.1.1" | |
| } | |
| VERSION="${TAG#v}" | |
| VERSION="${VERSION#forgetool-v}" | |
| case "$(uname -m)" in | |
| x86_64) ARCH="amd64" ;; | |
| aarch64|arm64) ARCH="arm64" ;; | |
| *) echo "Unsupported uname architecture: $(uname -m). Supported uname values: x86_64, aarch64, arm64." && exit 1 ;; | |
| esac | |
| curl -fsSL -o "${RUNNER_TEMP}/forgetool.tar.gz" "https://github.com/trueforge-org/forgetool/releases/download/${TAG}/forgetool_${VERSION}_linux_${ARCH}.tar.gz" || { echo "Failed to download forgetool release ${TAG} for linux_${ARCH}"; exit 1; } | |
| mkdir -p "${RUNNER_TEMP}/forgetool-bin" | |
| tar -xzf "${RUNNER_TEMP}/forgetool.tar.gz" -C "${RUNNER_TEMP}/forgetool-bin" forgetool || { echo "Failed to extract forgetool binary from archive"; exit 1; } | |
| chmod +x "${RUNNER_TEMP}/forgetool-bin/forgetool" | |
| echo "${RUNNER_TEMP}/forgetool-bin" >> "${GITHUB_PATH}" | |
| - name: Get Changelog Format Version | |
| shell: bash | |
| if: github.event_name == 'push' | |
| run: | | |
| ver="1" | |
| rev="1" | |
| key="changelog-format-$ver-rev-$rev" | |
| echo "Cache Key is: $key" | |
| echo "CHANGELOG_CACHE_KEY=$key" >> $GITHUB_ENV | |
| - name: Cache Changelog | |
| id: cache-changelog | |
| if: github.event_name == 'push' | |
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6 | |
| with: | |
| key: ${{ env.CHANGELOG_CACHE_KEY }}-${{ hashFiles('**/Chart.yaml') }} | |
| path: changelog.json.gz | |
| restore-keys: | | |
| ${{ env.CHANGELOG_CACHE_KEY }}-${{ hashFiles('**/Chart.yaml') }} | |
| ${{ env.CHANGELOG_CACHE_KEY }}- | |
| - name: Generate Changelog | |
| shell: bash | |
| if: github.event_name == 'push' | |
| run: | | |
| export REPO_PATH="./" | |
| export TEMPLATE_PATH="./templates/CHANGELOG.md.tmpl" | |
| export OUTPUT_DIR="./changelogs" | |
| export JSON_FILE="changelog.json" | |
| ls -l | |
| if [ -f "$JSON_FILE.gz" ]; then | |
| gunzip "$JSON_FILE.gz" --force # Force overwrite if file already exists | |
| fi | |
| forgetool charts genchangelog "$REPO_PATH" "$TEMPLATE_PATH" "$OUTPUT_DIR" | |
| # TODO: Test remove later | |
| echo "" | |
| echo "rootcontent" | |
| ls ./ | |
| echo "" | |
| gzip "$JSON_FILE" --best || echo "Compression failed, ignoring..." | |
| - name: Fix Pre-Commit issues | |
| shell: bash | |
| run: | | |
| echo "Running pre-commit test-and-cleanup..." | |
| pre-commit run --all ||: | |
| # Fix sh files to always be executable | |
| find . -name '*.sh' | xargs chmod +x | |
| - name: Install Helm | |
| uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5 | |
| with: | |
| version: v3.18.6 | |
| # Optional step if GPG signing is used | |
| - name: Prepare GPG key | |
| if: github.event_name == 'push' | |
| run: | | |
| gpg_dir=.cr-gpg | |
| mkdir "$gpg_dir" | |
| keyring="$gpg_dir/secring.gpg" | |
| base64 -d <<< "$GPG_KEYRING_BASE64" > "$keyring" | |
| passphrase_file="$gpg_dir/passphrase" | |
| echo "$GPG_PASSPHRASE" > "$passphrase_file" | |
| echo "CR_PASSPHRASE_FILE=$passphrase_file" >> "$GITHUB_ENV" | |
| echo "CR_KEYRING=$keyring" >> "$GITHUB_ENV" | |
| env: | |
| GPG_KEYRING_BASE64: "${{ secrets.GPG_KEYRING_BASE64 }}" | |
| GPG_PASSPHRASE: "${{ secrets.GPG_PASSPHRASE }}" | |
| - name: Helm | Login | |
| if: github.event_name == 'push' | |
| shell: bash | |
| run: echo ${{ secrets.QUAY_SECRET }} | helm registry login -u ${{ secrets.QUAY_USER }} --password-stdin quay.io | |
| - name: Release Charts | |
| shell: bash | |
| if: github.event_name == 'push' | |
| env: | |
| CR_SKIP_EXISTING: "true" | |
| run: | | |
| owner=$(cut -d '/' -f 1 <<< "$GITHUB_REPOSITORY") | |
| repo=$(cut -d '/' -f 2 <<< "$GITHUB_REPOSITORY") | |
| install="$RUNNER_TOOL_CACHE/cr/${{ inputs.version }}/$(uname -m)" | |
| echo "$install" >> "$GITHUB_PATH" | |
| ./.github/scripts/cr.sh --quay-token "${{ secrets.QUAY_TOKEN }}" --instal-dir $install | |
| - name: Helm | Logout | |
| shell: bash | |
| if: github.event_name == 'push' | |
| run: helm registry logout quay.io | |
| - name: Checkout website repo | |
| if: github.event_name == 'push' | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 | |
| with: | |
| repository: trueforge-org/websites | |
| path: website # checkout into ./website | |
| ref: main # branch to push to | |
| token: "${{ secrets.BOT_TOKEN }}" | |
| - name: Copy docs to website | |
| if: github.event_name == 'push' | |
| shell: bash | |
| run: | | |
| #!/bin/bash | |
| forgetool charts gendocs --charts-dir ./charts --website-dir ./website | |
| rm -rf ./website/truecharts/src/content/docs-common | |
| mv ./website/truecharts/src/content/docs/charts/library/common ./website/truecharts/src/content/docs-common | |
| - name: Prefetch contributor icons | |
| shell: bash | |
| if: github.event_name == 'push' | |
| run: | | |
| #!/bin/bash | |
| ## Loop through each contributor | |
| ## TODO: reenable later | |
| #while read -r contributor; do | |
| # avatar_url=$(echo "$contributor" | grep -oP '"avatar_url": "\K[^"]+') | |
| # | |
| # # Download the image | |
| # wget -q "$avatar_url" -O temp_avatar | |
| # | |
| # # Generate new filename with original extension | |
| # new_filename="public/assets/contributors/$(basename "$avatar_url" | cut -d '?' -f 1)" | |
| # | |
| # echo "converting file: $avatar_url" | |
| # EXT=${FILE##*.} # file extension | |
| # QUALITY=75 # quality for the image | |
| # # convert the image using cwebp and output a file with the extension replaced as .webp | |
| # cwebp -mt -m 6 -q $QUALITY -resize 32 32 "temp_avatar" -o "${new_filename}.webp" &>/dev/null | |
| # rm temp_avatar | |
| # | |
| #done < src/assets/contributors.json | |
| - name: Commit and push changes | |
| if: github.event_name == 'push' | |
| run: | | |
| cd website | |
| git config user.name "TrueForge-Bot" | |
| git config user.email "bot@trueforge.org" | |
| # Ensure we rebase in case there are changes from other sources in-between | |
| git stash push --include-untracked -m "autogenerated TrueCharts changes" | |
| git pull --rebase origin main | |
| git stash pop | |
| git add . | |
| git diff-index --quiet HEAD || git commit -m "Update website with latest charts and docs" | |
| git push origin main |