summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/api.yml50
-rw-r--r--.github/workflows/auto_approve.yml20
-rw-r--r--.github/workflows/auto_tag.yml38
-rw-r--r--.github/workflows/ci_builds.yml74
-rw-r--r--.github/workflows/cli.yml34
-rw-r--r--.github/workflows/develop_update.yml37
-rw-r--r--.github/workflows/docs.yml46
-rw-r--r--.github/workflows/feature_branch_update.yml43
-rw-r--r--.github/workflows/format.yml55
-rw-r--r--.github/workflows/format_push.yml59
-rw-r--r--.github/workflows/labeler.yml18
-rw-r--r--.github/workflows/lint.yml83
-rw-r--r--.github/workflows/regen.yml36
-rw-r--r--.github/workflows/regen_push.yml46
-rw-r--r--.github/workflows/stale.yml65
-rw-r--r--.github/workflows/unit_test.yml35
16 files changed, 0 insertions, 739 deletions
diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml
deleted file mode 100644
index db78f16112..0000000000
--- a/.github/workflows/api.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Update API Data
-
-permissions:
- contents: read
-
-on:
- push:
- branches:
- - master
- - develop
- paths:
- - 'keyboards/**'
- - 'layouts/community/**'
- - 'lib/python/**'
- - 'data/**'
- - '.github/workflows/api.yml'
- workflow_dispatch:
-
-jobs:
- api_data:
- runs-on: ubuntu-latest
- container: ghcr.io/qmk/qmk_cli
-
- # protect against those who work in their fork on 'important' branches
- if: github.repository == 'qmk/qmk_firmware'
-
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 1
- persist-credentials: false
-
- - name: Install dependencies
- run: |
- pip3 install -r requirements-dev.txt
-
- - name: Generate API Data
- run: |
- qmk generate-api
-
- - name: Upload API Data
- uses: jakejarvis/s3-sync-action@master
- with:
- args: --acl public-read --follow-symlinks --delete
- env:
- AWS_S3_BUCKET: ${{ github.ref == 'refs/heads/develop' && secrets['API_SPACE_DEVELOP'] || secrets['API_SPACE_MASTER'] }}
- AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
- AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
- AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
- SOURCE_DIR: '.build/api_data'
diff --git a/.github/workflows/auto_approve.yml b/.github/workflows/auto_approve.yml
deleted file mode 100644
index 1db1c49a9b..0000000000
--- a/.github/workflows/auto_approve.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-name: Automatic Approve
-
-permissions: {}
-
-on:
- schedule:
- - cron: "*/5 * * * *"
-
-jobs:
- automatic_approve:
- runs-on: ubuntu-latest
-
- if: github.repository == 'qmk/qmk_firmware'
-
- steps:
- - uses: mheap/automatic-approve-action@v1
- with:
- token: ${{ secrets.QMK_BOT_TOKEN }}
- workflows: "format.yml,lint.yml,unit_test.yml"
- dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml
deleted file mode 100644
index b4465277b0..0000000000
--- a/.github/workflows/auto_tag.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: Essential files modified
-
-permissions:
- contents: write
-
-on:
- workflow_dispatch:
- push:
- branches:
- - master
- paths:
- - builddefs/**/*
- - drivers/**/*
- - platforms/**/*
- - quantum/**/*
- - tests/**/*
- - tmk_core/**/*
- - util/**/*
- - 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@v4
- with:
- fetch-depth: 0
-
- - name: Bump version and push tag
- uses: anothrNick/github-tag-action@1.66.0
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- DEFAULT_BUMP: 'patch'
diff --git a/.github/workflows/ci_builds.yml b/.github/workflows/ci_builds.yml
deleted file mode 100644
index 81151d6898..0000000000
--- a/.github/workflows/ci_builds.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-name: CI Builds
-
-permissions:
- contents: read
-
-on:
- push:
- branches: [master, develop]
- workflow_dispatch:
- inputs:
- branch:
- type: choice
- description: 'Branch to build'
- options: [master, develop]
-
-concurrency: ci_build-${{ github.event.inputs.branch || github.ref_name }}
-
-jobs:
- ci_builds:
- if: github.repository == 'qmk/qmk_firmware'
- name: "CI Build"
- runs-on: self-hosted
- timeout-minutes: 1380
-
- strategy:
- fail-fast: false
- matrix:
- keymap: [default, via]
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - name: Disable safe.directory check
- run : git config --global --add safe.directory '*'
-
- - uses: actions/checkout@v4
- with:
- submodules: recursive
- ref: ${{ github.event.inputs.branch || github.ref }}
-
- - name: Install dependencies
- run: pip3 install -r requirements.txt
-
- - name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }})
- run: |
- export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
- qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed
- # Generate the step summary markdown
- ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
- # Truncate to a maximum of 1MB to deal with GitHub workflow limit
- truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
- # Exit with failure if the compilation stage failed
- [ ! -f .failed ] || exit 1
-
- - name: 'Upload artifacts'
- uses: actions/upload-artifact@v3
- if: always()
- with:
- name: artifacts-${{ github.event.inputs.branch || github.ref_name }}-${{ matrix.keymap }}
- if-no-files-found: ignore
- path: |
- *.bin
- *.hex
- *.uf2
- .build/failed.*
-
- - name: 'CI Discord Notification'
- if: always()
- working-directory: util/ci/
- env:
- DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
- run: |
- python3 -m pip install -r requirements.txt
- python3 ./discord-results.py --branch ${{ github.event.inputs.branch || github.ref_name }} --keymap ${{ matrix.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml
deleted file mode 100644
index 77b5bfe073..0000000000
--- a/.github/workflows/cli.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: CLI CI
-
-permissions:
- contents: read
-
-on:
- push:
- branches:
- - master
- - develop
- pull_request:
- paths:
- - 'lib/python/**'
- - 'requirements.txt'
- - '.github/workflows/cli.yml'
-
-jobs:
- test:
- runs-on: ubuntu-latest
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - name: Disable safe.directory check
- run : git config --global --add safe.directory '*'
-
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Install dependencies
- run: pip3 install -r requirements-dev.txt
- - name: Run tests
- run: qmk pytest
diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml
deleted file mode 100644
index afcda1fe98..0000000000
--- a/.github/workflows/develop_update.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: Update develop after master merge
-
-permissions:
- contents: write
-
-on:
- push:
- branches:
- - master
-
-jobs:
- develop_update:
- runs-on: ubuntu-latest
-
- if: github.repository == 'qmk/qmk_firmware'
-
- steps:
- - uses: actions/checkout@v4
- with:
- token: ${{ secrets.QMK_BOT_TOKEN }}
- fetch-depth: 0
-
- - name: Disable automatic eol conversion
- run: |
- echo "* -text" > .git/info/attributes
-
- - name: Checkout develop
- run: |
- git fetch origin master develop
- git checkout develop
-
- - name: Update develop from master
- run: |
- git config --global user.name "QMK Bot"
- git config --global user.email "hello@qmk.fm"
- git merge origin/master
- git push origin develop
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
deleted file mode 100644
index a6944e1816..0000000000
--- a/.github/workflows/docs.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-name: Generate Docs
-
-permissions:
- contents: write
-
-on:
- push:
- branches:
- - master
- paths:
- - 'tmk_core/**'
- - 'quantum/**'
- - 'platforms/**'
- - 'docs/**'
- - '.github/workflows/docs.yml'
-
-jobs:
- generate:
- runs-on: ubuntu-latest
- container: ghcr.io/qmk/qmk_cli
-
- # protect against those who develop with their fork on master
- if: github.repository == 'qmk/qmk_firmware'
-
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 1
-
- - name: Install dependencies
- run: |
- apt-get update && apt-get install -y rsync nodejs npm doxygen
- npm install -g moxygen
-
- - name: Build docs
- run: |
- qmk --verbose generate-docs
-
- - name: Deploy
- uses: JamesIves/github-pages-deploy-action@v4.4.3
- with:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- BASE_BRANCH: master
- BRANCH: gh-pages
- FOLDER: .build/docs
- GIT_CONFIG_EMAIL: hello@qmk.fm
diff --git a/.github/workflows/feature_branch_update.yml b/.github/workflows/feature_branch_update.yml
deleted file mode 100644
index 283a255342..0000000000
--- a/.github/workflows/feature_branch_update.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: Update feature branches after develop merge
-
-permissions:
- contents: write
-
-on:
- push:
- branches:
- - develop
-
-jobs:
- feature_branch_update:
- runs-on: ubuntu-latest
-
- if: github.repository == 'qmk/qmk_firmware'
-
- strategy:
- matrix:
- branch:
- - xap
- - riot
-
- steps:
- - uses: actions/checkout@v4
- with:
- token: ${{ secrets.QMK_BOT_TOKEN }}
- fetch-depth: 0
-
- - name: Disable automatic eol conversion
- run: |
- echo "* -text" > .git/info/attributes
-
- - name: Checkout branch
- run: |
- git fetch origin develop ${{ matrix.branch }}
- git checkout ${{ matrix.branch }}
-
- - name: Update branch from develop
- run: |
- git config --global user.name "QMK Bot"
- git config --global user.email "hello@qmk.fm"
- git merge origin/develop
- git push origin ${{ matrix.branch }}
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
deleted file mode 100644
index 9e8b80c883..0000000000
--- a/.github/workflows/format.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-name: PR Lint Format
-
-permissions:
- contents: read
-
-on:
- pull_request:
- paths:
- - 'drivers/**'
- - 'lib/arm_atsam/**'
- - 'lib/lib8tion/**'
- - 'lib/python/**'
- - 'platforms/**'
- - 'quantum/**'
- - 'tests/**'
- - 'tmk_core/**'
-
-jobs:
- lint:
- runs-on: ubuntu-latest
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - name: Disable safe.directory check
- run : git config --global --add safe.directory '*'
-
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Install dependencies
- run: |
- pip3 install -r requirements-dev.txt
-
- - name: Get changed files
- id: file_changes
- uses: tj-actions/changed-files@v39
-
- - name: Run qmk formatters
- shell: 'bash {0}'
- run: |
- 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
-
- - name: Fail when formatting required
- run: |
- git diff
- for file in $(git diff --name-only); do
- echo "File '${file}' Requires Formatting"
- echo "::error file=${file}::Requires Formatting"
- done
- test -z "$(git diff --name-only)"
diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml
deleted file mode 100644
index 61b4caf422..0000000000
--- a/.github/workflows/format_push.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-name: Lint Format
-
-permissions:
- contents: read
-
-on:
- push:
- branches:
- - master
- - develop
-
-jobs:
- lint:
- runs-on: ubuntu-latest
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - name: Disable safe.directory check
- run : git config --global --add safe.directory '*'
-
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Disable automatic eol conversion
- run: |
- echo "* -text" > .git/info/attributes
-
- - name: Install dependencies
- run: |
- pip3 install -r requirements-dev.txt
-
- - name: Run qmk formatters
- shell: 'bash {0}'
- run: |
- qmk format-c -a
- qmk format-python -a
- qmk format-text -a
- 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@v5
- if: ${{ github.repository == 'qmk/qmk_firmware'}}
- with:
- token: ${{ secrets.QMK_BOT_TOKEN }}
- delete-branch: true
- branch: bugfix/format_${{ env.GITHUB_REF_SLUG }}
- author: QMK Bot <hello@qmk.fm>
- committer: QMK Bot <hello@qmk.fm>
- commit-message: Format code according to conventions
- title: '[CI] Format code according to conventions'
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
deleted file mode 100644
index 95f58ff003..0000000000
--- a/.github/workflows/labeler.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: "Pull Request Labeler"
-
-permissions:
- contents: read
- pull-requests: write
-
-on:
- pull_request_target:
- types: [opened, synchronize, reopened, ready_for_review, locked]
-
-jobs:
- triage:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/labeler@main
- with:
- repo-token: "${{ secrets.GITHUB_TOKEN }}"
- configuration-path: '.github/labeler.yml'
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
deleted file mode 100644
index 19dd7c70a9..0000000000
--- a/.github/workflows/lint.yml
+++ /dev/null
@@ -1,83 +0,0 @@
-name: PR Lint keyboards
-
-permissions:
- contents: read
-
-on:
- pull_request:
- paths:
- - 'keyboards/**'
-
-jobs:
- lint:
- runs-on: ubuntu-latest
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - name: Disable safe.directory check
- run : git config --global --add safe.directory '*'
-
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Install dependencies
- run: pip3 install -r requirements-dev.txt
-
- - name: Get changed files
- id: file_changes
- uses: tj-actions/changed-files@v39
-
- - name: Print info
- run: |
- git rev-parse --short HEAD
- echo ${{ github.event.pull_request.base.sha }}
- echo '${{ steps.file_changes.outputs.all_changed_files}}'
-
- - name: Run qmk lint
- if: always()
- shell: 'bash {0}'
- run: |
- QMK_CHANGES=$(echo -e '${{ steps.file_changes.outputs.all_changed_files}}' | sed 's/ /\n/g')
- QMK_KEYBOARDS=$(qmk list-keyboards)
-
- exit_code=0
-
- for KB in $QMK_KEYBOARDS; do
- KEYBOARD_CHANGES=$(echo "$QMK_CHANGES" | grep -E '^(keyboards/'${KB}'/)')
- if [[ -z "$KEYBOARD_CHANGES" ]]; then
- # skip as no changes for this keyboard
- continue
- fi
-
- KEYMAP_ONLY=$(echo "$KEYBOARD_CHANGES" | grep -cv /keymaps/)
- if [[ $KEYMAP_ONLY -gt 0 ]]; then
- echo "linting ${KB}"
-
- qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
- exit_code=$(($exit_code + $?))
- fi
- done
-
- qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true
- for file in ${{ steps.file_changes.outputs.all_changed_files}}; do
- if ! git diff --quiet $file; then
- echo "File '${file}' Requires Formatting"
- echo "::error file=${file}::Requires Formatting"
- exit_code=$(($exit_code + 1))
- fi
- done
-
- if [[ $exit_code -gt 255 ]]; then
- exit 255
- fi
- exit $exit_code
-
- - name: Verify keyboard aliases
- if: always()
- shell: 'bash {0}'
- run: |
- git reset --hard
- git clean -xfd
- qmk ci-validate-aliases
diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml
deleted file mode 100644
index a31526084f..0000000000
--- a/.github/workflows/regen.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-name: PR Regenerate Files
-
-permissions:
- contents: read
-
-on:
- pull_request:
- paths:
- - 'data/constants/**'
- - 'lib/python/**'
-
-jobs:
- regen:
- runs-on: ubuntu-latest
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - name: Disable safe.directory check
- run : git config --global --add safe.directory '*'
-
- - uses: actions/checkout@v4
-
- - 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
deleted file mode 100644
index f1b7812937..0000000000
--- a/.github/workflows/regen_push.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-name: Regenerate Files
-
-permissions:
- contents: write
-
-on:
- push:
- branches:
- - master
- - develop
-
-jobs:
- regen:
- runs-on: ubuntu-latest
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - name: Disable safe.directory check
- run : git config --global --add safe.directory '*'
-
- - uses: actions/checkout@v4
-
- - 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@v5
- 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'
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
deleted file mode 100644
index f011fb5460..0000000000
--- a/.github/workflows/stale.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-name: 'Close stale issues and PRs'
-
-permissions:
- issues: write
- pull-requests: write
-
-on:
- schedule:
- - cron: '30 1 * * *'
- workflow_dispatch:
-
-jobs:
- stale:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/stale@v8
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
-
- remove-stale-when-updated: true
- exempt-draft-pr: true
- ascending: true
- operations-per-run: 150
-
- stale-issue-label: stale
- days-before-issue-stale: 90
- days-before-issue-close: 30
- exempt-issue-labels: bug,in progress,on hold,discussion,to do
-
- stale-issue-message: >
- This issue has been automatically marked as stale because it has not had activity in the
- last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity
- occurs.
-
- For maintainers: Please label with `bug`, `in progress`, `on hold`, `discussion` or `to do` to prevent
- the issue from being re-flagged.
-
- close-issue-message: >
- This issue has been automatically closed because it has not had activity in the last 30 days.
- If this issue is still valid, re-open the issue and let us know.
-
- // [stale-action-closed]
-
- stale-pr-label: stale
- days-before-pr-stale: 45
- days-before-pr-close: 30
- exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold
-
- stale-pr-message: >
- Thank you for your contribution!
-
- This pull request has been automatically marked as stale because it has not had
- activity in the last 45 days. It will be closed in 30 days if no further activity occurs.
- Please feel free to give a status update now, or re-open when it's ready.
-
- For maintainers: Please label with `bug`, `awaiting review`, `breaking_change`, `in progress`, or `on hold`
- to prevent the issue from being re-flagged.
-
- close-pr-message: >
- Thank you for your contribution!
-
- This pull request has been automatically closed because it has not had activity in the last 30 days.
- Please feel free to give a status update now, ping for review, or re-open when it's ready.
-
- // [stale-action-closed]
diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml
deleted file mode 100644
index eec8c8b5fc..0000000000
--- a/.github/workflows/unit_test.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: Unit Tests
-
-permissions:
- contents: read
-
-on:
- push:
- branches:
- - master
- - develop
- pull_request:
- paths:
- - 'builddefs/**'
- - 'quantum/**'
- - 'platforms/**'
- - 'tmk_core/**'
- - 'tests/**'
- - '*.mk'
- - 'Makefile'
- - '.github/workflows/unit_test.yml'
-
-jobs:
- test:
- runs-on: ubuntu-latest
-
- container: ghcr.io/qmk/qmk_cli
-
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
- - name: Install dependencies
- run: pip3 install -r requirements-dev.txt
- - name: Run tests
- run: make test:all