Grasscutter/.github/workflows/lint_commit.yml
2023-03-31 17:05:12 -04:00

64 lines
2.5 KiB
YAML

name: "Lint whitespace and languages"
on:
workflow_dispatch: ~
push:
paths:
- ".github/workflows/**"
- "src/main/**.java"
- "**.json"
- "build.gradle"
- "scripts/format_whitespace.py"
- "scripts/manage_languages.py"
branches:
- "development"
jobs:
Make-Lint-Commits:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Run Whitespace Linter
run: python scripts/format_whitespace.py
- run: git config --global user.name "github-actions"
- run: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- run: git stash
- run: git checkout LintRatchet
# - run: git merge development
- run: git reset --hard development
- run: git stash pop || true
- name: Commit any whitespace changes
run: git add -u && git commit -m 'Fix whitespace [skip actions]' || true
- name: Update Languages
run: python scripts/manage_languages.py -u
- name: Commit any language changes
run: git add -u && git commit -m 'Update languages [skip actions]' || true
- name: Bump version to a release
# a.b.c-dev -> a.b.c
# If any breaking changes, a.b.c-dev -> a.(b+1).0
run: |
export BREAKING=`git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%s" --grep="BREAKING"`
if [[ $BREAKING ]]; then export NEXT_VERSION=`sed -nr "s/^version = '(.*\.)([0-9]+)\.[0-9]+(-dev)?'"'/echo "\1$((\2+1)).0"/ep' build.gradle`; else export NEXT_VERSION=`sed -nr "s/^version = '(.*)-dev'/\1/p" build.gradle`; fi
export CHANGELOG=`git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%s"`
perl -pi -e "s/version = '.*'/version = '$NEXT_VERSION'/g" build.gradle
git add build.gradle && git commit -m "Version $NEXT_VERSION" -m "$CHANGELOG"
- name: Bump version to next dev
# a.b.c -> a.b.(c+1)-dev
run: |
export NEXT_VERSION=`sed -nr "s/^version = '(.*)([0-9]+)'"'/echo "\1$((\2+1))-dev"/ep' build.gradle`
perl -pi -e "s/version = '.*'/version = '$NEXT_VERSION'/g" build.gradle
git add build.gradle && git commit -m "Version $NEXT_VERSION [skip actions]"
- name: Force-push changes to LintRatchet
run: git push --set-upstream --force origin LintRatchet