removed github actions
This commit is contained in:
parent
99501ddae4
commit
6b8fd32d61
41
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
41
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,41 +0,0 @@
|
|||||||
name: Bug report
|
|
||||||
description: Create a report to help us improve QMK Firmware.
|
|
||||||
title: "[Bug] "
|
|
||||||
labels: ["bug", "help wanted"]
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
Provide a general summary of the bug in the title above.
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Describe the Bug
|
|
||||||
description: A clear and concise description of what the bug is.
|
|
||||||
- type: input
|
|
||||||
attributes:
|
|
||||||
label: Keyboard Used
|
|
||||||
description: The name of the keyboard from the `make` or `qmk compile`/`qmk flash` commands, eg. `planck/rev6`.
|
|
||||||
- type: input
|
|
||||||
attributes:
|
|
||||||
label: Link to product page (if applicable)
|
|
||||||
- type: input
|
|
||||||
attributes:
|
|
||||||
label: Operating System
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: qmk doctor Output
|
|
||||||
description: Output from running the `qmk doctor` command.
|
|
||||||
render: text
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Is AutoHotKey / Karabiner installed
|
|
||||||
options:
|
|
||||||
- label: AutoHotKey (Windows)
|
|
||||||
- label: Karabiner (macOS)
|
|
||||||
- type: input
|
|
||||||
attributes:
|
|
||||||
label: Other keyboard-related software installed
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Additional Context
|
|
||||||
description: Add any other relevant information about the problem here.
|
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
8
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,8 +0,0 @@
|
|||||||
blank_issues_enabled: false
|
|
||||||
contact_links:
|
|
||||||
- name: QMK Discord
|
|
||||||
url: https://discord.gg/Uq7gcHh
|
|
||||||
about: Ask questions, discuss issues and features. Chill.
|
|
||||||
- name: OLKB Subreddit
|
|
||||||
url: https://www.reddit.com/r/olkb
|
|
||||||
about: All things OLKB and QMK.
|
|
24
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
24
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -1,24 +0,0 @@
|
|||||||
name: Feature request
|
|
||||||
description: Suggest a new feature or changes to existing features.
|
|
||||||
title: "[Feature Request] "
|
|
||||||
labels: ["enhancement", "help wanted"]
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
Provide a general summary of the changes you want in the title above.
|
|
||||||
|
|
||||||
Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help.
|
|
||||||
Your best bet is to take the initiative, add support, then submit a PR yourself.
|
|
||||||
- type: checkboxes
|
|
||||||
attributes:
|
|
||||||
label: Feature Request Type
|
|
||||||
options:
|
|
||||||
- label: Core functionality
|
|
||||||
- label: Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
|
|
||||||
- label: Alteration (enhancement/optimization) of existing feature(s)
|
|
||||||
- label: New behavior
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Description
|
|
||||||
description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful.
|
|
19
.github/ISSUE_TEMPLATE/other_issues.yml
vendored
19
.github/ISSUE_TEMPLATE/other_issues.yml
vendored
@ -1,19 +0,0 @@
|
|||||||
name: Other issues
|
|
||||||
description: Anything else that doesn't fall into the above categories.
|
|
||||||
labels: ["help wanted", "question"]
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
Provide a general summary of the changes you want in the title above.
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
Please check [https://docs.qmk.fm/#/support](https://docs.qmk.fm/#/support) for additional resources first. If that doesn't answer your question, choose the bug report template instead, as that may be more appropriate.
|
|
||||||
|
|
||||||
Please refrain from asking maintainers to add support for specific keyboards -- it is unlikely they will have hardware available, and will not be able to help.
|
|
||||||
Your best bet is to take the initiative, add support, then submit a PR yourself.
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Issue Description
|
|
||||||
description: Describe your issue in as much detail as possible.
|
|
11
.github/ISSUE_TEMPLATE/zzz_blank.md
vendored
11
.github/ISSUE_TEMPLATE/zzz_blank.md
vendored
@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
name: Blank issue
|
|
||||||
about: If you're 100% sure that you don't need one of the other issue templates, use
|
|
||||||
this one instead.
|
|
||||||
title: ''
|
|
||||||
labels: help wanted, question
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
35
.github/PULL_REQUEST_TEMPLATE.md
vendored
35
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,35 +0,0 @@
|
|||||||
<!--- Provide a general summary of your changes in the title above. -->
|
|
||||||
|
|
||||||
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
|
|
||||||
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
<!--- Describe your changes in detail here. -->
|
|
||||||
|
|
||||||
## Types of Changes
|
|
||||||
|
|
||||||
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply. -->
|
|
||||||
- [ ] Core
|
|
||||||
- [ ] Bugfix
|
|
||||||
- [ ] New feature
|
|
||||||
- [ ] Enhancement/optimization
|
|
||||||
- [ ] Keyboard (addition or update)
|
|
||||||
- [ ] Keymap/layout/userspace (addition or update)
|
|
||||||
- [ ] Documentation
|
|
||||||
|
|
||||||
## Issues Fixed or Closed by This PR
|
|
||||||
|
|
||||||
*
|
|
||||||
|
|
||||||
## Checklist
|
|
||||||
|
|
||||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
|
||||||
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
|
||||||
- [ ] My code follows the code style of this project: [**C**](https://docs.qmk.fm/#/coding_conventions_c), [**Python**](https://docs.qmk.fm/#/coding_conventions_python)
|
|
||||||
- [ ] I have read the [**PR Checklist** document](https://docs.qmk.fm/#/pr_checklist) and have made the appropriate changes.
|
|
||||||
- [ ] My change requires a change to the documentation.
|
|
||||||
- [ ] I have updated the documentation accordingly.
|
|
||||||
- [ ] I have read the [**CONTRIBUTING** document](https://docs.qmk.fm/#/contributing).
|
|
||||||
- [ ] I have added tests to cover my changes.
|
|
||||||
- [ ] I have tested the changes and verified that they work and don't break anything (as well as I can manage).
|
|
9
.github/dependabot.yml
vendored
9
.github/dependabot.yml
vendored
@ -1,9 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: "github-actions"
|
|
||||||
directory: "/"
|
|
||||||
labels: CI
|
|
||||||
reviewers:
|
|
||||||
- "qmk/collaborators"
|
|
||||||
schedule:
|
|
||||||
interval: "daily"
|
|
46
.github/labeler.yml
vendored
46
.github/labeler.yml
vendored
@ -1,46 +0,0 @@
|
|||||||
core:
|
|
||||||
- quantum/**/*
|
|
||||||
- tmk_core/**/*
|
|
||||||
- drivers/**/*
|
|
||||||
- tests/**/*
|
|
||||||
- util/**/*
|
|
||||||
- platforms/**/*
|
|
||||||
- builddefs/**/*
|
|
||||||
- Makefile
|
|
||||||
- '*.mk'
|
|
||||||
dependencies:
|
|
||||||
- any:
|
|
||||||
- 'lib/**/*'
|
|
||||||
- '!lib/python/**/*'
|
|
||||||
keyboard:
|
|
||||||
- any:
|
|
||||||
- 'keyboards/**/*'
|
|
||||||
- '!keyboards/**/keymaps/**/*'
|
|
||||||
keymap:
|
|
||||||
- users/**/*
|
|
||||||
- layouts/**/*
|
|
||||||
- keyboards/**/keymaps/**/*
|
|
||||||
via:
|
|
||||||
- keyboards/**/keymaps/via/*
|
|
||||||
cli:
|
|
||||||
- requirements.txt
|
|
||||||
- lib/python/**/*
|
|
||||||
python:
|
|
||||||
- '**/*.py'
|
|
||||||
documentation:
|
|
||||||
- docs/**/*
|
|
||||||
translation:
|
|
||||||
- docs/fr-fr/**/*
|
|
||||||
- docs/es/**/*
|
|
||||||
- docs/ja/**/*
|
|
||||||
- docs/he-il/**/*
|
|
||||||
- docs/pt-br/**/*
|
|
||||||
- docs/zh-cn/**/*
|
|
||||||
- docs/de/**/*
|
|
||||||
- docs/ru-ru/**/*
|
|
||||||
CI:
|
|
||||||
- .github/**/*
|
|
||||||
dd:
|
|
||||||
- data/constants/**/*
|
|
||||||
- data/mappings/**/*
|
|
||||||
- data/schemas/**/*
|
|
50
.github/workflows/api.yml
vendored
50
.github/workflows/api.yml
vendored
@ -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'
|
|
20
.github/workflows/auto_approve.yml
vendored
20
.github/workflows/auto_approve.yml
vendored
@ -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/"
|
|
38
.github/workflows/auto_tag.yml
vendored
38
.github/workflows/auto_tag.yml
vendored
@ -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'
|
|
123
.github/workflows/ci_build_major_branch.yml
vendored
123
.github/workflows/ci_build_major_branch.yml
vendored
@ -1,123 +0,0 @@
|
|||||||
name: CI Build Major Branch
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
actions: write
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [master, develop]
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
branch:
|
|
||||||
type: choice
|
|
||||||
description: "Branch to build"
|
|
||||||
options: [master, develop]
|
|
||||||
|
|
||||||
env:
|
|
||||||
# https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits
|
|
||||||
# We've decreased it from 20 to 15 to allow for other GHA to run unimpeded
|
|
||||||
CONCURRENT_JOBS: 15
|
|
||||||
|
|
||||||
# Ensure we only have one build running at a time, cancelling any active builds if a new commit is pushed to the respective branch
|
|
||||||
concurrency:
|
|
||||||
group: ci_build-${{ github.event.inputs.branch || github.ref_name }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
determine_concurrency:
|
|
||||||
name: "Determine concurrency"
|
|
||||||
if: github.repository == 'qmk/qmk_firmware'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: ghcr.io/qmk/qmk_cli
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
slice_length: ${{ steps.generate_slice_length.outputs.slice_length }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install prerequisites
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y jq
|
|
||||||
|
|
||||||
- name: Disable safe.directory check
|
|
||||||
run: |
|
|
||||||
git config --global --add safe.directory '*'
|
|
||||||
|
|
||||||
- name: Checkout QMK Firmware
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Determine concurrency
|
|
||||||
id: generate_slice_length
|
|
||||||
run: |
|
|
||||||
target_count=$( {
|
|
||||||
qmk find -km default 2>/dev/null
|
|
||||||
qmk find -km via 2>/dev/null
|
|
||||||
} | sort | uniq | wc -l)
|
|
||||||
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution as we're splitting default and via
|
|
||||||
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
build_targets:
|
|
||||||
name: "Compile keymap ${{ matrix.keymap }}"
|
|
||||||
needs: determine_concurrency
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
keymap: [default, via]
|
|
||||||
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
|
|
||||||
with:
|
|
||||||
branch: ${{ inputs.branch || github.ref_name }}
|
|
||||||
keymap: ${{ matrix.keymap }}
|
|
||||||
slice_length: ${{ needs.determine_concurrency.outputs.slice_length }}
|
|
||||||
secrets: inherit
|
|
||||||
|
|
||||||
rollup_tasks:
|
|
||||||
name: "Consolidation"
|
|
||||||
needs: build_targets
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Download firmwares
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: firmware-*
|
|
||||||
path: firmwares
|
|
||||||
merge-multiple: true
|
|
||||||
|
|
||||||
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
|
|
||||||
uses: jakejarvis/s3-sync-action@master
|
|
||||||
with:
|
|
||||||
args: --acl public-read --follow-symlinks --delete
|
|
||||||
env:
|
|
||||||
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
|
|
||||||
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
|
|
||||||
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
|
|
||||||
SOURCE_DIR: firmwares
|
|
||||||
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}
|
|
||||||
|
|
||||||
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
|
|
||||||
uses: jakejarvis/s3-sync-action@master
|
|
||||||
with:
|
|
||||||
args: --acl public-read --follow-symlinks --delete
|
|
||||||
env:
|
|
||||||
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
|
|
||||||
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
|
|
||||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
|
|
||||||
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
|
|
||||||
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
|
|
||||||
SOURCE_DIR: firmwares
|
|
||||||
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
|
|
||||||
|
|
||||||
- name: Check if failure marker file exists
|
|
||||||
id: check_failure_marker
|
|
||||||
uses: andstor/file-existence-action@v3
|
|
||||||
with:
|
|
||||||
files: firmwares/.failed
|
|
||||||
|
|
||||||
- name: Fail build if needed
|
|
||||||
if: steps.check_failure_marker.outputs.files_exists == 'true'
|
|
||||||
run: |
|
|
||||||
# Exit with failure if the compilation stage failed
|
|
||||||
exit 1
|
|
181
.github/workflows/ci_build_major_branch_keymap.yml
vendored
181
.github/workflows/ci_build_major_branch_keymap.yml
vendored
@ -1,181 +0,0 @@
|
|||||||
name: CI Build Major Branch Keymap
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
actions: write
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_call:
|
|
||||||
inputs:
|
|
||||||
branch:
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
keymap:
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
slice_length:
|
|
||||||
type: string
|
|
||||||
required: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
generate_targets:
|
|
||||||
name: "Generate targets (${{ inputs.keymap }})"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: ghcr.io/qmk/qmk_cli
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
targets: ${{ steps.generate_targets.outputs.targets }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install prerequisites
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y jq
|
|
||||||
|
|
||||||
- name: Disable safe.directory check
|
|
||||||
run: |
|
|
||||||
git config --global --add safe.directory '*'
|
|
||||||
|
|
||||||
- name: Checkout QMK Firmware
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Generate build targets
|
|
||||||
id: generate_targets
|
|
||||||
run: |
|
|
||||||
{ # Intentionally use `shuf` here so that we share manufacturers across all build groups -- some have a lot of ARM-based boards which inherently take longer
|
|
||||||
counter=0
|
|
||||||
echo -n '{'
|
|
||||||
qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do
|
|
||||||
if [ $counter -gt 0 ]; then
|
|
||||||
echo -n ','
|
|
||||||
fi
|
|
||||||
counter=$((counter+1))
|
|
||||||
printf "\"group %02d\":{" $counter
|
|
||||||
echo -n '"targets":"'
|
|
||||||
echo $target | tr ' ' '\n' | sort | uniq | xargs echo -n
|
|
||||||
echo -n '"}'
|
|
||||||
done
|
|
||||||
echo -n '}'
|
|
||||||
} | sed -e 's@\n@@g' > targets.json
|
|
||||||
|
|
||||||
# Output the target keys as a variable
|
|
||||||
echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Upload targets json
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: targets-${{ inputs.keymap }}
|
|
||||||
path: targets.json
|
|
||||||
|
|
||||||
build_targets:
|
|
||||||
name: "Compile ${{ matrix.target }} (${{ inputs.keymap }})"
|
|
||||||
needs: generate_targets
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: ghcr.io/qmk/qmk_cli
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
target: ${{ fromJson(needs.generate_targets.outputs.targets) }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install prerequisites
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y jq
|
|
||||||
|
|
||||||
- name: Disable safe.directory check
|
|
||||||
run: |
|
|
||||||
git config --global --add safe.directory '*'
|
|
||||||
|
|
||||||
- name: Checkout QMK Firmware
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Get target definitions
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: targets-${{ inputs.keymap }}
|
|
||||||
path: .
|
|
||||||
|
|
||||||
- name: Deploy submodules
|
|
||||||
run: |
|
|
||||||
qmk git-submodule -f
|
|
||||||
|
|
||||||
- name: Dump targets
|
|
||||||
run: |
|
|
||||||
jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort
|
|
||||||
|
|
||||||
- name: Build targets
|
|
||||||
continue-on-error: true
|
|
||||||
run: |
|
|
||||||
export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 ))
|
|
||||||
qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed
|
|
||||||
|
|
||||||
- name: Upload binaries
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-${{ inputs.keymap }}-${{ matrix.target }}
|
|
||||||
if-no-files-found: ignore
|
|
||||||
path: |
|
|
||||||
*.bin
|
|
||||||
*.hex
|
|
||||||
*.uf2
|
|
||||||
.build/failed.*
|
|
||||||
.failed
|
|
||||||
|
|
||||||
- name: Fail build if any group failed
|
|
||||||
run: |
|
|
||||||
# Exit with failure if the compilation stage failed
|
|
||||||
[ ! -f .failed ] || exit 1
|
|
||||||
|
|
||||||
repack_firmware:
|
|
||||||
if: always()
|
|
||||||
name: "Repack artifacts"
|
|
||||||
needs: build_targets
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout QMK Firmware
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Download firmwares
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
pattern: firmware-${{ inputs.keymap }}-*
|
|
||||||
path: .
|
|
||||||
merge-multiple: true
|
|
||||||
|
|
||||||
- name: Upload all firmwares
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: firmware-${{ inputs.keymap }}
|
|
||||||
if-no-files-found: ignore
|
|
||||||
path: |
|
|
||||||
*.bin
|
|
||||||
*.hex
|
|
||||||
*.uf2
|
|
||||||
.build/failed.*
|
|
||||||
.failed
|
|
||||||
|
|
||||||
- name: Generate output logs
|
|
||||||
run: |
|
|
||||||
# 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
|
|
||||||
|
|
||||||
- name: Delete temporary build artifacts
|
|
||||||
uses: geekyeggo/delete-artifact@v5
|
|
||||||
with:
|
|
||||||
name: |
|
|
||||||
firmware-${{ inputs.keymap }}-*
|
|
||||||
targets-${{ inputs.keymap }}
|
|
||||||
|
|
||||||
- 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 ${{ inputs.branch || github.ref_name }} --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
34
.github/workflows/cli.yml
vendored
34
.github/workflows/cli.yml
vendored
@ -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
|
|
37
.github/workflows/develop_update.yml
vendored
37
.github/workflows/develop_update.yml
vendored
@ -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
|
|
65
.github/workflows/docs.yml
vendored
65
.github/workflows/docs.yml
vendored
@ -1,65 +0,0 @@
|
|||||||
name: Generate Docs
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
paths:
|
|
||||||
- 'builddefs/docsgen/**'
|
|
||||||
- 'tmk_core/**'
|
|
||||||
- 'quantum/**'
|
|
||||||
- 'platforms/**'
|
|
||||||
- 'docs/**'
|
|
||||||
- '.github/workflows/docs.yml'
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- 'builddefs/docsgen/**'
|
|
||||||
- 'docs/**'
|
|
||||||
- '.github/workflows/docs.yml'
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
generate:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: ghcr.io/qmk/qmk_cli
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
apt-get update && apt-get install -y rsync doxygen
|
|
||||||
# install nvm
|
|
||||||
touch $HOME/.bashrc
|
|
||||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
|
||||||
|
|
||||||
- name: Install node
|
|
||||||
run: |
|
|
||||||
source $HOME/.bashrc
|
|
||||||
nvm install 20
|
|
||||||
nvm use 20
|
|
||||||
corepack enable
|
|
||||||
|
|
||||||
- name: Build docs
|
|
||||||
run: |
|
|
||||||
source $HOME/.bashrc
|
|
||||||
nvm use 20
|
|
||||||
qmk --verbose generate-docs
|
|
||||||
|
|
||||||
- name: Deploy
|
|
||||||
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
|
|
||||||
uses: JamesIves/github-pages-deploy-action@v4.6.1
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
branch: gh-pages
|
|
||||||
folder: .build/docs
|
|
||||||
git-config-name: QMK Bot
|
|
||||||
git-config-email: hello@qmk.fm
|
|
43
.github/workflows/feature_branch_update.yml
vendored
43
.github/workflows/feature_branch_update.yml
vendored
@ -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 }}
|
|
57
.github/workflows/format.yml
vendored
57
.github/workflows/format.yml
vendored
@ -1,57 +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@v44
|
|
||||||
with:
|
|
||||||
use_rest_api: true
|
|
||||||
|
|
||||||
- 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)"
|
|
59
.github/workflows/format_push.yml
vendored
59
.github/workflows/format_push.yml
vendored
@ -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@v6
|
|
||||||
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'
|
|
18
.github/workflows/labeler.yml
vendored
18
.github/workflows/labeler.yml
vendored
@ -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@v4
|
|
||||||
with:
|
|
||||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
||||||
configuration-path: '.github/labeler.yml'
|
|
87
.github/workflows/lint.yml
vendored
87
.github/workflows/lint.yml
vendored
@ -1,87 +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@v44
|
|
||||||
with:
|
|
||||||
use_rest_api: true
|
|
||||||
|
|
||||||
- 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 [[ -f $file ]]; then
|
|
||||||
if ! git diff --quiet $file; then
|
|
||||||
echo "File '${file}' Requires Formatting"
|
|
||||||
echo "::error file=${file}::Requires Formatting"
|
|
||||||
exit_code=$(($exit_code + 1))
|
|
||||||
fi
|
|
||||||
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
|
|
36
.github/workflows/regen.yml
vendored
36
.github/workflows/regen.yml
vendored
@ -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)"
|
|
46
.github/workflows/regen_push.yml
vendored
46
.github/workflows/regen_push.yml
vendored
@ -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@v6
|
|
||||||
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'
|
|
66
.github/workflows/stale.yml
vendored
66
.github/workflows/stale.yml
vendored
@ -1,66 +0,0 @@
|
|||||||
name: 'Close stale issues and PRs'
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
actions: write
|
|
||||||
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '30 1 * * *'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
stale:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/stale@main
|
|
||||||
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]
|
|
35
.github/workflows/unit_test.yml
vendored
35
.github/workflows/unit_test.yml
vendored
@ -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: qmk test-c
|
|
@ -43,6 +43,24 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define KC_CTL_A MT(MOD_LCTL, KC_A) // Tap for A, hold for Control
|
||||||
|
#define KC_CTL_CL MT(MOD_LCTL, KC_SCLN) // Tap for colon, hold for Control
|
||||||
|
#define KC_SFT_Z MT(MOD_RSFT, KC_Z) // Tap for Z, hold for Shift
|
||||||
|
#define KC_SFT_SL MT(MOD_RSFT, KC_SLSH) // Tap for slash, hold for Shift
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define KC_GUI_ESC MT(MOD_LGUI, KC_ESC) // Tap for Esc, hold for GUI (Meta, Command, Win)
|
||||||
|
#define KC_ALT_ENT MT(MOD_LALT, KC_ENT) // Tap for Enter, hold for Alt (Option)
|
||||||
|
#define KC_SPE_SPC LT(_SPECIAL, KC_SPC) // Tap for Space, hold for Special layer
|
||||||
|
#define KC_NUM_SPC LT(_NUMBERS, KC_SPC) // Tap for Space, hold for Numbers layer
|
||||||
|
#define KC_SFT_TAB MT(MOD_RSFT, KC_TAB) // Tap for Tab, hold for Right Shift
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#define SET_NUMROW(hsv) \
|
#define SET_NUMROW(hsv) \
|
||||||
{10, 2, hsv}, \
|
{10, 2, hsv}, \
|
||||||
@ -123,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||||
* |Space | WIN |LOWER | BSPC | / Enter / \Shift \ |SPACE |RAISE | RCTR | RAlt |
|
* |Space | WIN |LOWER | BSPC | / Enter / \Shift \ |SPACE |RAISE | RCTR | RAlt |
|
||||||
* | | | | |/ / \ \ | | | | |
|
* | | | | |/ / \ \ | | | | |
|
||||||
* `----------------------------------' '------''---------------------------'
|
* `----------------------------------' '------------------------------------'
|
||||||
*/
|
*/
|
||||||
[_QWERTY] = LAYOUT(
|
[_QWERTY] = LAYOUT(
|
||||||
//,------------------------------------------------. ,---------------------------------------------------.
|
//,------------------------------------------------. ,---------------------------------------------------.
|
||||||
@ -131,9 +149,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
KC_LCTL,KC_CTL_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_CTL_CL, KC_QUOT,
|
||||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT,
|
KC_LSFT,KC_SFT_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SFT_SL, KC_LSFT,
|
||||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||||
KC_SPC, KC_RAISE, KC_LOWER, KC_BSPC, KC_ENT, KC_LSFT, KC_SPC , KC_RAISE, KC_RCTL, KC_RALT
|
KC_SPC, KC_RAISE, KC_LOWER, KC_BSPC, KC_ENT, KC_LSFT, KC_SPC , KC_RAISE, KC_RCTL, KC_RALT
|
||||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||||
@ -239,11 +257,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
//,------------------------------------------------. ,---------------------------------------------------.
|
//,------------------------------------------------. ,---------------------------------------------------.
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NUM, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
|
||||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, XXXXXXX,
|
XXXXXXX, KC_CIRC, KC_7, KC_8, KC_9, KC_ASTR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
//|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
|
//|--------------+-------+--------+--------+------- |--------+-------+--------+--------+--------+---------|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE,
|
XXXXXXX, KC_MINS, KC_4, KC_5, KC_6, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
//|--------------+-------+--------+--------+------- === | | === |--------+-------+--------+--------+--------+---------|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______,
|
XXXXXXX, KC_PLUS, KC_1, KC_2, KC_3, KC_SLSH,_______, _______,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||||
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
//|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
|
||||||
_______, TO(_QWERTY), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______
|
_______, TO(_QWERTY), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______
|
||||||
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
// \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
|
||||||
|
Loading…
Reference in New Issue
Block a user