π§π§Ή HealthChecks π³ποΈ #581
This file contains 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: π§π§Ή HealthChecks π³ποΈ | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: true | |
on: | |
#push: | |
workflow_dispatch: | |
schedule: | |
# - cron: "45 03 * * *" # 03:45 AM UTC --> 09:30 AM Morning NPT | |
- cron: "0 */2 * * *" # Every 02 Hrs | |
#env: | |
#GHCR_TOKEN: "${{ secrets.GHCR_TOKEN }}" | |
jobs: | |
#------------------------------------------------------------------------------------# | |
check-post: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
issues: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
path: main | |
filter: "blob:none" | |
- name: Setup Env | |
run: | | |
##presets | |
set +x ; set +e | |
#-------------# | |
##CoreUtils | |
sudo apt update -y | |
sudo apt install bc coreutils curl dos2unix fdupes jq moreutils wget -y | |
sudo apt-get install apt-transport-https apt-utils ca-certificates coreutils dos2unix gnupg2 jq moreutils p7zip-full rename rsync software-properties-common texinfo tmux util-linux wget -y 2>/dev/null ; sudo apt-get update -y 2>/dev/null | |
#temp | |
SYSTMP="$(dirname $(mktemp -u))" && export SYSTMP="${SYSTMP}" | |
echo "SYSTMP=${SYSTMP}" >> "${GITHUB_ENV}" | |
echo "GIT_TERMINAL_PROMPT=0" >> "${GITHUB_ENV}" | |
echo "GIT_ASKPASS=/bin/echo" >> "${GITHUB_ENV}" | |
git config --global "user.email" "[email protected]" | |
git config --global "user.name" "Azathothas" | |
##User-Agent | |
USER_AGENT="$(curl -qfsSL 'https://raw.githubusercontent.com/pkgforge/devscripts/refs/heads/main/Misc/User-Agents/ua_firefox_macos_latest.txt')" && export USER_AGENT="${USER_AGENT}" | |
echo "USER_AGENT=${USER_AGENT}" >> "${GITHUB_ENV}" | |
continue-on-error: true | |
- name: Install Addons | |
run: | | |
#presets | |
set +x ; set +e | |
#-------------# | |
bash <(curl -qfsSL "https://raw.githubusercontent.com/pkgforge/devscripts/refs/heads/main/Linux/install_bins_curl.sh") | |
continue-on-error: true | |
- name: Dos2Unix Everything | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
cd "${GITHUB_WORKSPACE}/main" | |
find . -type f ! -path "./.git/*" -exec dos2unix {} \; 2>/dev/null | |
continue-on-error: true | |
- name: ActionLint | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
cd "${GITHUB_WORKSPACE}/main" | |
find ".github/workflows" -type f -name "*ml" -exec actionlint {} \; | |
continue-on-error: true | |
- name: Sanity Check R2 List | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
sed '/:/!s/^/#/' -i "${GITHUB_WORKSPACE}/main/r2/data/PKG_LIST.txt" | |
sed -E 's/^[[:space:]]+|[[:space:]]+$//g' -i "${GITHUB_WORKSPACE}/main/r2/data/PKG_LIST.txt" | |
sort -u "${GITHUB_WORKSPACE}/main/r2/data/PKG_LIST.txt" -o "${GITHUB_WORKSPACE}/main/r2/data/PKG_LIST.txt" | |
sed -E 's/^[[:space:]]+|[[:space:]]+$//g' -i "${GITHUB_WORKSPACE}/main/r2/data/PKG_LIST.txt" | |
continue-on-error: true | |
- name: Shellcheck | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
cd "${GITHUB_WORKSPACE}/main" | |
find ".github" -type f -name '*.sh' -exec shellcheck --exclude="SC2261" --severity=error "{}" \; 2>/dev/null | tee "${GITHUB_WORKSPACE}/main/.github/shellcheck.txt" | |
continue-on-error: true | |
- name: Close Issues (> 3 Days) | |
env: | |
GITHUB_TOKEN: "${{ github.token }}" | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
gh issue list -R "pkgforge/metadata" --limit "1000" --json 'number,createdAt' --jq '.[] | select(((now - (.createdAt | fromdate)) / 86400) > 3) | .number' | xargs -I "{}" gh issue close "{}" -R "pkgforge/metadata" | |
continue-on-error: true | |
- name: Generate Repo Metadata (git-sizer) | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
cd "${GITHUB_WORKSPACE}/main" | |
#Dust sizes | |
echo '```mathematica' > "${GITHUB_WORKSPACE}/main/.github/SIZE.md" | |
dust -b -c -i -r -n 99999999 "${GITHUB_WORKSPACE}/main" | tee -a "${GITHUB_WORKSPACE}/main/.github/SIZE.md" | |
dust -b -c -i -r -n 99999999 "${GITHUB_WORKSPACE}/main" | tee "${GITHUB_WORKSPACE}/main/.github/SIZE.txt" | |
echo '```' >> "${GITHUB_WORKSPACE}/main/.github/SIZE.md" | |
continue-on-error: true | |
- name: Generate Dynamic Data | |
run: | | |
#Presets | |
set +x ; set +e ; ulimit -S -s unlimited ; ulimit -f unlimited 2>/dev/null | |
#--------------# | |
##Total (Bincache) | |
jq -n '[ | |
{host: "x86_64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/bincache/x86_64-Linux.json' | jq -r '.[] | .ghcr_pkg' | sort -u | wc -l)"'}, | |
{host: "aarch64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/bincache/aarch64-Linux.json' | jq -r '.[] | .ghcr_pkg' | sort -u | wc -l)"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/bincache/data/TOTAL.json" | |
##Total (External/AM) | |
jq -n '[ | |
{host: "x86_64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/am/x86_64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'}, | |
{host: "aarch64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/am/aarch64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/external/am/data/TOTAL.json" | |
##Total (External/appimage.github.io) | |
jq -n '[ | |
{host: "x86_64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/appimage.github.io/x86_64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'}, | |
{host: "aarch64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/appimage.github.io/aarch64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/external/appimage.github.io/data/TOTAL.json" | |
##Total (External/appimagehub) | |
jq -n '[ | |
{host: "x86_64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/appimagehub/x86_64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'}, | |
{host: "aarch64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/appimagehub/aarch64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/external/appimagehub/data/TOTAL.json" | |
##Total (External/cargo-bins) | |
jq -n '[ | |
{host: "x86_64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/cargo-bins/x86_64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'}, | |
{host: "aarch64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/external/cargo-bins/aarch64-Linux.json' | jq -r '.[] | .download_url' | sort -u | wc -l)"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/external/cargo-bins/data/TOTAL.json" | |
##Total (pkgcache) | |
jq -n '[ | |
{host: "x86_64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/pkgcache/x86_64-Linux.json' | jq -r '.[] | .ghcr_pkg' | sort -u | wc -l)"'}, | |
{host: "aarch64-Linux", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/pkgcache/aarch64-Linux.json' | jq -r '.[] | .ghcr_pkg' | sort -u | wc -l)"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/pkgcache/data/TOTAL.json" | |
##Total (soarpkgs) | |
jq -n '[ | |
{type: "binaries", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/soarpkgs/INDEX.json' | jq -r '.[] | select(.build_script | contains("binaries")) | .pkg' | wc -l)"'}, | |
{type: "packages", total: '"$(curl -qfsSL 'https://meta.pkgforge.dev/soarpkgs/INDEX.json' | jq -r '.[] | select(.build_script | contains("packages")) | .pkg' | wc -l)"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/soarpkgs/data/TOTAL.json" | |
##Total ALL | |
jq -n '[inputs | .[] | select(.sum == "total").total] | add' "${GITHUB_WORKSPACE}/main/bincache/data/TOTAL.json" "${GITHUB_WORKSPACE}/main/pkgcache/data/TOTAL.json" | tr -d '[:space:]' > "${GITHUB_WORKSPACE}/main/soarpkgs/data/TOTAL_CACHE.txt" | |
jq -n '{total: ([inputs | .[] | select(.sum == "total").total] | add)}' "${GITHUB_WORKSPACE}/main/bincache/data/TOTAL.json" "${GITHUB_WORKSPACE}/main/pkgcache/data/TOTAL.json" | jq . > "${GITHUB_WORKSPACE}/main/soarpkgs/data/TOTAL_CACHE.json" | |
#Installable | |
jq -n '[ | |
{source: "bincache", total: '"$(cat "${GITHUB_WORKSPACE}/main/bincache/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "pkgcache", total: '"$(cat "${GITHUB_WORKSPACE}/main/pkgcache/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "ivan-hc-am", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/am/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "appimage-github-io", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/appimage.github.io/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "appimagehub", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/appimagehub/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "cargo-bins", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/cargo-bins/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/TOTAL_INSTALLABLE.json" | |
#Installable + Buildable | |
jq -n '[ | |
{source: "bincache", total: '"$(cat "${GITHUB_WORKSPACE}/main/bincache/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "pkgcache", total: '"$(cat "${GITHUB_WORKSPACE}/main/pkgcache/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "soarpkgs", total: '"$(cat "${GITHUB_WORKSPACE}/main/soarpkgs/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "ivan-hc-am", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/am/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "appimage-github-io", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/appimage.github.io/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "appimagehub", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/appimagehub/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'}, | |
{source: "cargo-bins", total: '"$(cat "${GITHUB_WORKSPACE}/main/external/cargo-bins/data/TOTAL.json" | jq -r '.[] | select(.sum=="total") | .total')"'} | |
] | . + [{"sum": "total", "total": (map(.total) | add)}]' | jq . > "${GITHUB_WORKSPACE}/main/TOTAL_ALL.json" | |
##Gif | |
cd "${GITHUB_WORKSPACE}/main" | |
sed -E "s~(https://soar\.pkgforge\.dev/gif)[^\"]*~\1?$(basename "$(mktemp -u)")=$(basename "$(mktemp -u)")~g" -i "${GITHUB_WORKSPACE}/main/README.md" | |
continue-on-error: true | |
- name: Get DateTime & Purge files (=> 95 MB) | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
UTC_TIME="$(TZ='UTC' date +'%Y-%m-%d (%I:%M:%S %p)')" | |
echo "UTC_TIME=${UTC_TIME}" >> "${GITHUB_ENV}" | |
#Sync | |
cd "${GITHUB_WORKSPACE}/main" | |
git pull origin main --no-edit 2>/dev/null | |
#Purge | |
find "${GITHUB_WORKSPACE}/main" -path "${GITHUB_WORKSPACE}/main/.git" -prune -o -type f -size +95M -exec rm -rvf "{}" + 2>/dev/null | |
continue-on-error: true | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
repository: ./main | |
commit_user_name: Azathothas | |
commit_user_email: [email protected] | |
#commit_message: "βββββ β" | |
commit_message: "β Healthchecks" | |
#push_options: '--force' | |
continue-on-error: true | |
- name: Pull & Push (2) | |
run: | | |
#Presets | |
set +x ; set +e | |
#--------------# | |
cd "${GITHUB_WORKSPACE}/main" | |
git pull origin main --no-edit 2>/dev/null | |
git pull origin main --ff-only ; git merge --no-ff -m "Merge & Sync" | |
continue-on-error: true | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
repository: ./main | |
commit_user_name: Azathothas | |
commit_user_email: [email protected] | |
commit_message: "β Healthchecks" | |
#push_options: '--force' | |
continue-on-error: true |