name: "Chore: Daily Tasks" on: schedule: - cron: "0 0 * * *" workflow_dispatch: permissions: issues: write pull-requests: write concurrency: group: lock jobs: generate-readme: runs-on: group: default name: "Generate readme files" steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 with: token: ${{ secrets.OR_PAT }} fetch-depth: 1 - name: Setting repo parent dir as safe safe.directory run: git config --global --add safe.directory "$GITHUB_WORKSPACE" - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6 with: go-version: stable cache: true cache-dependency-path: | **/go.mod **/go.sum - name: Setup Forgetool shell: bash run: |- TAG="$(curl -fsSL \ https://api.github.com/repos/trueforge-org/forgetool/releases/latest \ | jq -r '.tag_name')" [ -n "${TAG}" ] && [ "${TAG}" != "null" ] || { echo "Failed to determine latest stable forgetool release tag"; exit 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: Transcode icons to webp shell: bash run: | # Find all files named icon.* in all subfolders and transcode to webp find . -type f -name 'icon.*' | while read -r FILE do DIR=$(dirname "$FILE") # get the directory of the current file EXT=${FILE##*.} # file extension QUALITY=75 # quality for the image # Transcode to icon.webp if [[ "$EXT" != "webp" && ! -f "${DIR}/icon.webp" ]]; then echo "converting file to icon.webp: $FILE" cwebp -resize 150 150 -m 6 -mt -q $QUALITY "$FILE" -o "${DIR}/icon.webp" &>/dev/null || echo "transcode failed for icon.webp" fi # Transcode to icon-small.webp if [[ ! -f "${DIR}/icon-small.webp" ]]; then echo "converting file to icon-small.webp: $FILE" cwebp -resize 32 32 -m 6 -mt -q $QUALITY "$FILE" -o "${DIR}/icon-small.webp" &>/dev/null || echo "transcode failed for icon-small.webp" fi # Only remove the original file if: # 1. it's not already a webp # 2. icon.webp exists in the same directory if [[ "$EXT" != "webp" && -f "${DIR}/icon.webp" ]]; then rm "$FILE" fi done - name: Fix Fixable 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 # Clean up chart.yaml after pre-commit changes # Avoids un-needed git diff changes, due to quoting and array ordering - name: Fix Chart.yaml shell: bash run: | forgetool charts genmeta - name: Cleanup run: | rm -rf changes.json rm -rf master - name: Commit changes run: | git config user.name "TrueCharts-Bot" git config user.email "bot@truecharts.org" git pull git add --all git commit -sm "Commit daily changes" || exit 0 git push lock-threads: runs-on: group: default steps: - uses: dessant/lock-threads@89ae32b08ed1a541efecbab17912962a5e38981c # v6 with: github-token: ${{ secrets.BOT_TOKEN }} issue-inactive-days: "7" exclude-any-issue-labels: "" issue-comment: "This issue is locked to prevent necro-posting on closed issues. Please create a new issue or contact staff on discord of the problem persists" issue-lock-reason: "" pr-inactive-days: "7" pr-comment: "This PR is locked to prevent necro-posting on closed PRs. Please create a issue or contact staff on discord if you want to further discuss this" pr-lock-reason: "resolved" log-output: true # check-contributors: # name: Check Contributors # runs-on: # group: default # steps: # - name: Checkout # uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 # with: # token: ${{ secrets.BOT_TOKEN }} # repository: truecharts/charts # fetch-depth: 110 # # - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4 # with: # node-version: 18 # # - uses: borales/actions-yarn@3766bb1335b98fb13c60eaf358fe20811b730a88 # v5.0.0 # with: # cmd: install --frozen-lockfile # # - name: List missing and unknown contributors # env: # PRIVATE_TOKEN: ${{ secrets.BOT_TOKEN }} # run: | # awk -F', ' '{ for( i=1; i<=NF; i++ ) print $i }' <<<$(yarn all-contributors check)