summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/format.yml8
-rw-r--r--.github/workflows/lint.yml9
-rw-r--r--.github/workflows/regen.yml33
-rw-r--r--.github/workflows/regen_push.yml43
4 files changed, 83 insertions, 10 deletions
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index 782530f62e..c671565a61 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -30,16 +30,14 @@ jobs:
run: |
pip3 install -r requirements-dev.txt
- - uses: trilom/file-changes-action@v1.2.4
+ - name: Get changed files
id: file_changes
- with:
- output: ' '
- fileOutput: ' '
+ uses: tj-actions/changed-files@v34
- name: Run qmk formatters
shell: 'bash {0}'
run: |
- cat ~/files_added.txt ~/files_modified.txt > ~/files_changed.txt
+ echo '${{ steps.file_changes.outputs.added_files}}' '${{ steps.file_changes.outputs.modified_files}}' > ~/files_changed.txt
qmk format-c --core-only $(< ~/files_changed.txt) || true
qmk format-python $(< ~/files_changed.txt) || true
qmk format-text $(< ~/files_changed.txt) || true
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 8e1dbcaea2..2bae44ae99 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -22,21 +22,20 @@ jobs:
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- - uses: trilom/file-changes-action@v1.2.4
+ - name: Get changed files
id: file_changes
- with:
- output: '\n'
+ uses: tj-actions/changed-files@v34
- name: Print info
run: |
git rev-parse --short HEAD
echo ${{ github.event.pull_request.base.sha }}
- echo '${{ steps.file_changes.outputs.files}}'
+ echo '${{ steps.file_changes.outputs.all_changed_files}}'
- name: Run qmk lint
shell: 'bash {0}'
run: |
- QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.files}}')
+ QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g')
QMK_KEYBOARDS=$(qmk list-keyboards)
exit_code=0
diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml
new file mode 100644
index 0000000000..ae25bc095e
--- /dev/null
+++ b/.github/workflows/regen.yml
@@ -0,0 +1,33 @@
+name: PR Regenerate Files
+
+permissions:
+ contents: read
+
+on:
+ pull_request:
+ paths:
+ - 'data/constants/**'
+ - 'lib/python/**'
+
+jobs:
+ regen:
+ runs-on: ubuntu-latest
+
+ container: qmkfm/qmk_cli
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Run qmk generators
+ run: |
+ util/regen.sh
+ git diff
+
+ - name: Fail when regeneration required
+ run: |
+ git diff
+ for file in $(git diff --name-only); do
+ echo "File '${file}' Requires Regeneration"
+ echo "::error file=${file}::Requires Regeneration"
+ done
+ test -z "$(git diff --name-only)"
diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml
new file mode 100644
index 0000000000..37b26d980c
--- /dev/null
+++ b/.github/workflows/regen_push.yml
@@ -0,0 +1,43 @@
+name: Regenerate Files
+
+permissions:
+ contents: write
+
+on:
+ push:
+ branches:
+ - master
+ - develop
+
+jobs:
+ regen:
+ runs-on: ubuntu-latest
+
+ container: qmkfm/qmk_cli
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Run qmk generators
+ run: |
+ util/regen.sh
+ git diff
+
+ - uses: rlespinasse/github-slug-action@v3.x
+
+ - name: Become QMK Bot
+ run: |
+ git config user.name 'QMK Bot'
+ git config user.email 'hello@qmk.fm'
+
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v4
+ if: ${{ github.repository == 'qmk/qmk_firmware'}}
+ with:
+ token: ${{ secrets.QMK_BOT_TOKEN }}
+ delete-branch: true
+ branch: bugfix/regen_${{ env.GITHUB_REF_SLUG }}
+ author: QMK Bot <hello@qmk.fm>
+ committer: QMK Bot <hello@qmk.fm>
+ commit-message: Regenerate Files
+ title: '[CI] Regenerate Files'