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@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 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@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6 with: go-version: stable cache: true cache-dependency-path: | **/go.mod **/go.sum - name: Install ./forgetool shell: bash run: | VERSION="3.0.0" FILENAME="forgetool_${VERSION}_linux_amd64.tar.gz" URL="https://github.com/trueforge-org/forgetool/releases/download/v${VERSION}/${FILENAME}" mkdir -p temp cd temp # Download the archive curl -L -o "$FILENAME" "$URL" # Extract the archive tar -xzf "$FILENAME" cd .. - 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 "${FILE/%.$EXT/.webp}" &>/dev/null || echo "transcode failed for icon.webp" fi # Transcode to icon-small.webp if [[ "$EXT" != "webp" && ! -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 # Remove the original file if it's not a .webp file after both transcodes if [[ "$EXT" != "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: | ./temp/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@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # 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)