Skip to content

Commit b3d1372

Browse files
committed
Merge branch 'master' of https://github.com/qmk/qmk_firmware
2 parents 9dec3df + 9a0f4e5 commit b3d1372

File tree

22,724 files changed

+755038
-951345
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

22,724 files changed

+755038
-951345
lines changed

.clangd

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
CompileFlags:
22
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
3-
Remove: [-W*, -mcall-prologues]
3+
Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues]
44
Compiler: clang

.editorconfig

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ charset = utf-8
1111
trim_trailing_whitespace = true
1212
insert_final_newline = true
1313

14-
[{*.yaml,*.yml}] # To match GitHub Actions formatting
14+
# To match GitHub Actions formatting
15+
[*.{yaml,yml}]
1516
indent_size = 2
1617

1718
[*.md]

.github/ISSUE_TEMPLATE/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
blank_issues_enabled: false
22
contact_links:
33
- name: QMK Discord
4-
url: https://discord.gg/Uq7gcHh
4+
url: https://discord.gg/qmk
55
about: Ask questions, discuss issues and features. Chill.
66
- name: OLKB Subreddit
77
url: https://www.reddit.com/r/olkb

.github/PULL_REQUEST_TEMPLATE.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<!--- Provide a general summary of your changes in the title above. -->
22

3-
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
43
<!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
54

65
## Description
@@ -15,7 +14,7 @@
1514
- [ ] New feature
1615
- [ ] Enhancement/optimization
1716
- [ ] Keyboard (addition or update)
18-
- [ ] Keymap/layout/userspace (addition or update)
17+
- [ ] Keymap/layout (addition or update)
1918
- [ ] Documentation
2019

2120
## Issues Fixed or Closed by This PR

.github/labeler.yml

+46-36
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,56 @@
11
core:
2-
- quantum/**/*
3-
- tmk_core/**/*
4-
- drivers/**/*
5-
- tests/**/*
6-
- util/**/*
7-
- platforms/**/*
8-
- builddefs/**/*
9-
- Makefile
10-
- '*.mk'
2+
- changed-files:
3+
- any-glob-to-any-file:
4+
- quantum/**
5+
- tmk_core/**
6+
- drivers/**
7+
- tests/**
8+
- util/**
9+
- platforms/**
10+
- builddefs/*.mk
11+
- Makefile
12+
- '*.mk'
1113
dependencies:
12-
- any:
13-
- 'lib/**/*'
14-
- '!lib/python/**/*'
14+
- changed-files:
15+
- all-globs-to-any-file:
16+
- lib/**
17+
- '!lib/python/**'
1518
keyboard:
16-
- any:
17-
- 'keyboards/**/*'
18-
- '!keyboards/**/keymaps/**/*'
19+
- changed-files:
20+
- all-globs-to-any-file:
21+
- keyboards/**
22+
- '!keyboards/**/keymaps/**'
1923
keymap:
20-
- users/**/*
21-
- layouts/**/*
22-
- keyboards/**/keymaps/**/*
24+
- changed-files:
25+
- any-glob-to-any-file:
26+
- users/**
27+
- layouts/**
28+
- keyboards/**/keymaps/**
2329
via:
24-
- keyboards/**/keymaps/via/*
30+
- changed-files:
31+
- any-glob-to-any-file:
32+
- keyboards/**/keymaps/via/*
2533
cli:
26-
- requirements.txt
27-
- lib/python/**/*
34+
- changed-files:
35+
- any-glob-to-any-file:
36+
- requirements.txt
37+
- lib/python/**
2838
python:
29-
- '**/*.py'
39+
- changed-files:
40+
- any-glob-to-any-file:
41+
- '**/*.py'
3042
documentation:
31-
- docs/**/*
32-
translation:
33-
- docs/fr-fr/**/*
34-
- docs/es/**/*
35-
- docs/ja/**/*
36-
- docs/he-il/**/*
37-
- docs/pt-br/**/*
38-
- docs/zh-cn/**/*
39-
- docs/de/**/*
40-
- docs/ru-ru/**/*
43+
- changed-files:
44+
- any-glob-to-any-file:
45+
- docs/**
46+
- builddefs/docsgen/**
4147
CI:
42-
- .github/**/*
48+
- changed-files:
49+
- any-glob-to-any-file:
50+
- .github/**
4351
dd:
44-
- data/constants/**/*
45-
- data/mappings/**/*
46-
- data/schemas/**/*
52+
- changed-files:
53+
- any-glob-to-any-file:
54+
- data/constants/**
55+
- data/mappings/**
56+
- data/schemas/**

.github/workflows/auto_approve.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ jobs:
1313
if: github.repository == 'qmk/qmk_firmware'
1414

1515
steps:
16-
- uses: mheap/automatic-approve-action@v1
16+
- uses: zvecr/automatic-approve-action@safe_files
1717
with:
1818
token: ${{ secrets.QMK_BOT_TOKEN }}
19-
workflows: "format.yml,lint.yml,unit_test.yml"
20-
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
19+
workflows: "labeler.yml,lint.yml,docs.yml"
20+
safe_files: "keyboards/,docs/"
+139
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: CI Build Major Branch
2+
3+
permissions:
4+
contents: read
5+
actions: write
6+
7+
on:
8+
push:
9+
branches: [master, develop]
10+
workflow_dispatch:
11+
inputs:
12+
branch:
13+
type: choice
14+
description: "Branch to build"
15+
options: [master, develop]
16+
17+
env:
18+
# https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits
19+
# We've decreased it from 20 to 15 to allow for other GHA to run unimpeded
20+
CONCURRENT_JOBS: 15
21+
22+
# Ensure we only have one build running at a time, cancelling any active builds if a new commit is pushed to the respective branch
23+
concurrency:
24+
group: ci_build-${{ github.event.inputs.branch || github.ref_name }}
25+
cancel-in-progress: true
26+
27+
jobs:
28+
determine_concurrency:
29+
name: "Determine concurrency"
30+
if: github.repository == 'qmk/qmk_firmware'
31+
runs-on: ubuntu-latest
32+
container: ghcr.io/qmk/qmk_cli
33+
34+
outputs:
35+
slice_length: ${{ steps.generate_slice_length.outputs.slice_length }}
36+
37+
steps:
38+
- name: Install prerequisites
39+
run: |
40+
apt-get update
41+
apt-get install -y jq
42+
43+
- name: Disable safe.directory check
44+
run: |
45+
git config --global --add safe.directory '*'
46+
47+
- name: Checkout QMK Firmware
48+
uses: actions/checkout@v4
49+
50+
- name: Determine concurrency
51+
id: generate_slice_length
52+
run: |
53+
target_count=$( {
54+
qmk find -km default 2>/dev/null
55+
# qmk find -km xap 2>/dev/null
56+
} | sort | uniq | wc -l)
57+
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution
58+
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
59+
60+
build_targets:
61+
name: "Compile keymap ${{ matrix.keymap }}"
62+
needs: determine_concurrency
63+
strategy:
64+
fail-fast: false
65+
matrix:
66+
keymap: [default]
67+
# keymap: [default, xap]
68+
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
69+
with:
70+
branch: ${{ inputs.branch || github.ref_name }}
71+
keymap: ${{ matrix.keymap }}
72+
slice_length: ${{ needs.determine_concurrency.outputs.slice_length }}
73+
secrets: inherit
74+
75+
rollup_tasks:
76+
name: "Consolidation"
77+
needs: build_targets
78+
runs-on: ubuntu-latest
79+
80+
steps:
81+
- name: Disable safe.directory check
82+
run: |
83+
git config --global --add safe.directory '*'
84+
85+
- name: Checkout QMK Firmware
86+
uses: actions/checkout@v4
87+
with:
88+
fetch-depth: 0
89+
90+
- name: Download firmwares
91+
uses: actions/download-artifact@v4
92+
with:
93+
pattern: firmware-*
94+
path: .
95+
merge-multiple: true
96+
97+
- name: Generate index page
98+
run: |
99+
python3 -m pip install -r ./util/ci/requirements.txt
100+
./util/ci/index_generator.py > index.html
101+
./util/ci/firmware_list_generator.py > firmware_list.json
102+
103+
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
104+
uses: jakejarvis/s3-sync-action@master
105+
with:
106+
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
107+
env:
108+
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
109+
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
110+
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
111+
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
112+
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
113+
SOURCE_DIR: .
114+
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}
115+
116+
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
117+
uses: jakejarvis/s3-sync-action@master
118+
with:
119+
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
120+
env:
121+
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
122+
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
123+
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
124+
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
125+
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
126+
SOURCE_DIR: .
127+
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
128+
129+
- name: Check if failure marker file exists
130+
id: check_failure_marker
131+
uses: andstor/file-existence-action@v3
132+
with:
133+
files: ./.failed
134+
135+
- name: Fail build if needed
136+
if: steps.check_failure_marker.outputs.files_exists == 'true'
137+
run: |
138+
# Exit with failure if the compilation stage failed
139+
exit 1

0 commit comments

Comments
 (0)