CI: Add workflow for tagging essential modified files (#7384)

* Add workflow for tagging essential modified files

* Update inline with recent actions

* align rules to labeler

* Update .github/workflows/auto_tag.yaml
This commit is contained in:
Joel Challis 2020-12-06 12:54:08 +00:00 committed by GitHub
parent a6a1289003
commit 8d6ad23b09
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 22 deletions

32
.github/workflows/auto_tag.yaml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Essential files modified
on:
push:
branches:
- master
paths:
- quantum/**/*
- tmk_core/**/*
- drivers/**/*
- tests/**/*
- util/**/*
- platforms/**/*
- Makefile
- '*.mk'
jobs:
tag:
runs-on: ubuntu-latest
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.26.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -17,30 +17,8 @@ git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} '*.c' '*.h'
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add
git commit -m "format code according to conventions [skip ci]" && git push git@github.com:qmk/qmk_firmware.git master
increment_version ()
{
declare -a part=( ${1//\./ } )
part[2]=$((part[2] + 1))
new="${part[*]}"
echo -e "${new// /.}"
}
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(users/)' | grep -Ev '^(layouts/)' | wc -l)
if [[ $NEFM -gt 0 ]] ; then
echo "Essential files modified."
git fetch --tags
lasttag=$(git tag --sort=-creatordate --no-column --list '*.*.*' | grep -E -m1 '^[0-9]+\.[0-9]+\.[0-9]+$')
newtag=$(increment_version $lasttag)
until git tag $newtag; do
newtag=$(increment_version $newtag)
done
git push --tags git@github.com:qmk/qmk_firmware.git
else
echo "No essential files modified."
fi
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
make generate-keyboards-file SILENT=true > .keyboards
cd ..