Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

actions: fix scripts of bump-pr and brew-audit #350

Merged
merged 1 commit into from
Aug 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .github/actions/brew-audit/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/bin/bash

set -e

# ========================
# brew audit
echo "> Running brew audit..."
brew audit --tap brewforge/chinese -v

# ========================
# bump dry-run for homebrew
echo "> Running brew bump dry-run..."

items=$(brew livecheck --tap brewforge/chinese --full-name --json || echo "[]")

for item in $(echo $items | jq -r '.[] | .formula, .cask'); do
if [ "$item" == "null" ]; then
continue
fi

echo "---" # newline

item_obj=$(echo $items | jq --arg item "$item" '.[] | select(.formula == $item or .cask == $item)')

is_cask=$(echo $item_obj | jq -r '.cask')
is_formula=$(echo $item_obj | jq -r '.formula')

item_status=$(echo $item_obj | jq -r '.status')
item_version_current=$(echo $item_obj | jq -r '.version.current')
item_version_latest=$(echo $item_obj | jq -r '.version.latest')
item_outdated=$(echo $item_obj | jq -r '.version.outdated')
item_newer=$(echo $item_obj | jq -r '.version.newer_than_upstream')

if [ "$item_status" == "skipped" ]; then
# skipped.
echo -e "$item: \033[0;31m$(echo $item_obj | jq -r '.messages[0]')\033[0m"
continue
elif [ "$item_outdated" == "false" ]; then
# up-to-date.
echo -e "$item: \033[0;32mUp-to-date\033[0m"
continue
elif [ "$item_newer" == "true" ]; then
# newer than upstream.
echo -e "$item: \033[0;33mNewer than upstream\033[0m"
continue
fi

# bump.
echo "> Bumping $item from $item_version_current to $item_version_latest..."

if [ "$item_version_latest" == "null" ]; then
echo $item_obj

if [ -n "$is_cask" ]; then
cat "$(brew edit --cask $item --print-path)"
elif [ -n "$is_formula" ]; then
cat "$(brew edit $item --print-path)"
fi
fi

if [ "$is_cask" != "null" ]; then
brew bump-cask-pr $item --version=$item_version_latest --verbose --dry-run
# echo "> TDOO: brew bump-cask-pr $item --version=$item_version_latest --verbose --dry-run"
elif [ "$is_formula" != "null" ]; then
# brew bump-formula-pr $item --version=$item_version_latest --verbose --dry-run
echo -e "\033[0;33m> TDOO: brew bump-formula-pr $item --version=$item_version_latest --verbose --dry-run\033[0m"
fi

echo "> Done for $item"
done
8 changes: 0 additions & 8 deletions .github/actions/brew-tap/action.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
name: Brew Tap
description: Homebrew Tap

inputs:
HOMEBREW_GITHUB_API_TOKEN:
description: "Homebrew GitHub API Token"
required: true

runs:
using: "composite"

steps:
- name: Add Tap
env:
HOMEBREW_GITHUB_API_TOKEN: ${{ inputs.HOMEBREW_GITHUB_API_TOKEN }}
shell: bash -ieo pipefail {0}
run: |
brew tap brewforge/chinese
cp -rf ./* "$(brew --repository brewforge/chinese)"

- name: Install Homebrew's dependencies
shell: bash -ieo pipefail {0}
Expand Down
90 changes: 49 additions & 41 deletions .github/actions/bump-pr/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,60 +3,68 @@
set -e

# ========================
# Bump casks for Homebrew
casks=$(brew livecheck --tap brewforge/chinese --casks --json)
# brew audit
echo "> Running brew audit..."
brew audit --tap brewforge/chinese -v

for cask in $(echo $casks | jq -r '.[] | .cask'); do
cask_obj=$(echo $casks | jq --arg cask "$cask" '.[] | select(.cask == $cask)')
# ========================
# bump dry-run for homebrew
echo "> Running brew bump dry-run..."

cask_status=$(echo $cask_obj | jq -r '.status // empty')
cask_version_current=$(echo $cask_obj | jq -r '.version.current')
cask_version_latest=$(echo $cask_obj | jq -r '.version.latest')
cask_outdated=$(echo $cask_obj | jq -r '.version.outdated')
cask_newer=$(echo $cask_obj | jq -r '.version.newer_than_upstream')
items=$(brew livecheck --tap brewforge/chinese --full-name --json || echo "[]")

if [ "$cask_status" == "skipped" ]; then
echo -e "$cask: \033[0;31m$(echo $cask_obj | jq -r '.messages[0]')\033[0m"
continue
elif [ "$cask_outdated" == "false" ]; then
echo -e "$cask: \033[0;32mUp-to-date\033[0m"
continue
elif [ "$cask_newer" == "true" ]; then
echo -e "$cask: \033[0;33mNewer than upstream\033[0m"
for item in $(echo $items | jq -r '.[] | .formula, .cask'); do
if [ "$item" == "null" ]; then
continue
fi

echo "> Bumping $cask from $cask_version_current to $cask_version_latest..."
brew bump-cask-pr $cask --version=$cask_version_latest --verbose
echo "> Done for $cask"
done
echo "---" # newline

# ========================
# Bump formulae for Homebrew
formulae=$(brew livecheck --tap brewforge/chinese --formulae --json)
item_obj=$(echo $items | jq --arg item "$item" '.[] | select(.formula == $item or .cask == $item)')

for formula in $(echo $formulae | jq -r '.[] | .formula'); do
formula_obj=$(echo $formulae | jq --arg formula "$formula" '.[] | select(.formula == $formula)')
is_cask=$(echo $item_obj | jq -r '.cask')
is_formula=$(echo $item_obj | jq -r '.formula')

formula_status=$(echo $formula_obj | jq -r '.status // empty')
formula_version_current=$(echo $formula_obj | jq -r '.version.current')
formula_version_latest=$(echo $formula_obj | jq -r '.version.latest')
formula_outdated=$(echo $formula_obj | jq -r '.version.outdated')
formula_newer=$(echo $formula_obj | jq -r '.version.newer_than_upstream')
item_status=$(echo $item_obj | jq -r '.status')
item_version_current=$(echo $item_obj | jq -r '.version.current')
item_version_latest=$(echo $item_obj | jq -r '.version.latest')
item_outdated=$(echo $item_obj | jq -r '.version.outdated')
item_newer=$(echo $item_obj | jq -r '.version.newer_than_upstream')

if [ "$formula_status" == "skipped" ]; then
echo -e "$formula: \033[0;31m$(echo $formula_obj | jq -r '.messages[0]')\033[0m"
if [ "$item_status" == "skipped" ]; then
# skipped.
echo -e "$item: \033[0;31m$(echo $item_obj | jq -r '.messages[0]')\033[0m"
continue
elif [ "$formula_outdated" == "false" ]; then
echo -e "$formula: \033[0;32mUp-to-date\033[0m"
elif [ "$item_outdated" == "false" ]; then
# up-to-date.
echo -e "$item: \033[0;32mUp-to-date\033[0m"
continue
elif [ "$formula_newer" == "true" ]; then
echo -e "$formula: \033[0;33mNewer than upstream\033[0m"
elif [ "$item_newer" == "true" ]; then
# newer than upstream.
echo -e "$item: \033[0;33mNewer than upstream\033[0m"
continue
fi

echo "> Bumping $formula from $formula_version_current to $formula_version_latest..."
# brew bump-formula-pr $formula --version=$formula_version_latest --verbose
echo -e "\033[0;33m> TDOO: brew bump-formula-pr $formula --version=$formula_version_latest --verbose\033[0m"
echo "> Done for $formula"
# bump.
echo "> Bumping $item from $item_version_current to $item_version_latest..."

if [ "$item_version_latest" == "null" ]; then
echo $item_obj

if [ -n "$is_cask" ]; then
cat "$(brew edit --cask $item --print-path)"
elif [ -n "$is_formula" ]; then
cat "$(brew edit $item --print-path)"
fi
fi

if [ "$is_cask" != "null" ]; then
brew bump-cask-pr $item --version=$item_version_latest --verbose
# echo "> TDOO: brew bump-cask-pr $item --version=$item_version_latest --verbose"
elif [ "$is_formula" != "null" ]; then
# brew bump-formula-pr $item --version=$item_version_latest --verbose
echo -e "\033[0;33m> TDOO: brew bump-formula-pr $item --version=$item_version_latest --verbose\033[0m"
fi

echo "> Done for $item"
done
16 changes: 11 additions & 5 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ on:
branches:
- '**'

permissions: write-all
concurrency:
group: ${{ github.head_ref || github.ref_name }}
# cancel-in-progress: true

# permissions: write-all

jobs:
audit:
Expand All @@ -30,8 +34,10 @@ jobs:

- name: Brew Audit
shell: bash -ieo pipefail {0}
env:
HOMEBREW_DEVELOPER: "1"
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
run: |
brew audit --tap brewforge/chinese -v
# TODO: livecheck
# TODO: bump-cask-pr dry-run
# TODO: bump-formula-pr dry-run
cp -rf ./ "$(brew --repository brewforge/chinese)"
cd "$(brew --repository brewforge/chinese)"
./.github/actions/brew-audit/script.sh
2 changes: 2 additions & 0 deletions .github/workflows/schedule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ jobs:
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
shell: bash -ieo pipefail {0}
run: |
cp -rf ./ "$(brew --repository brewforge/chinese)"
cd "$(brew --repository brewforge/chinese)"
./.github/actions/bump-pr/script.sh

# formulas-linuxbrew:
Expand Down
Loading