mirror of
https://github.com/ClaytonWWilson/miryoku_zmk.git
synced 2026-03-10 10:45:04 +00:00
Add modules
- Add modules workflow option - Add extra and tap as additional options - Move clipboard to additional options - Add outboard_modules to outboards - Replace zmk with outboard_branches in outboards
This commit is contained in:
20
.github/workflows/build-inputs.yml
vendored
20
.github/workflows/build-inputs.yml
vendored
@@ -37,16 +37,6 @@ on:
|
||||
- "default"
|
||||
- "invertedT"
|
||||
- "vi"
|
||||
clipboard:
|
||||
description: 'clipboard'
|
||||
required: false
|
||||
default: 'default'
|
||||
type: choice
|
||||
options:
|
||||
- "default"
|
||||
- "fun"
|
||||
- "Mac"
|
||||
- "Win"
|
||||
layers:
|
||||
description: 'layers'
|
||||
required: false
|
||||
@@ -71,6 +61,10 @@ on:
|
||||
description: 'branches'
|
||||
required: false
|
||||
default: 'default'
|
||||
modules:
|
||||
description: 'modules'
|
||||
required: false
|
||||
default: 'default'
|
||||
jobs:
|
||||
process-inputs:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -79,12 +73,12 @@ jobs:
|
||||
shield: ${{ steps.process-inputs.outputs.shield }}
|
||||
alphas: ${{ steps.process-inputs.outputs.alphas }}
|
||||
nav: ${{ steps.process-inputs.outputs.nav }}
|
||||
clipboard: ${{ steps.process-inputs.outputs.clipboard }}
|
||||
layers: ${{ steps.process-inputs.outputs.layers }}
|
||||
mapping: ${{ steps.process-inputs.outputs.mapping }}
|
||||
custom_config: ${{ steps.process-inputs.outputs.custom_config }}
|
||||
kconfig: ${{ steps.process-inputs.outputs.kconfig }}
|
||||
branches: ${{ steps.process-inputs.outputs.branches }}
|
||||
modules: ${{ steps.process-inputs.outputs.modules }}
|
||||
steps:
|
||||
- name: Process inputs
|
||||
id: process-inputs
|
||||
@@ -98,12 +92,12 @@ jobs:
|
||||
set-output "shield" "${{ github.event.inputs.shield }}"
|
||||
set-output "alphas" "${{ github.event.inputs.alphas }}"
|
||||
set-output "nav" "${{ github.event.inputs.nav }}"
|
||||
set-output "clipboard" "${{ github.event.inputs.clipboard }}"
|
||||
set-output "layers" "${{ github.event.inputs.layers }}"
|
||||
set-output "mapping" "${{ github.event.inputs.mapping }}"
|
||||
set-output "custom_config" "${{ github.event.inputs.custom_config }}"
|
||||
set-output "kconfig" "${{ github.event.inputs.kconfig }}"
|
||||
set-output "branches" "${{ github.event.inputs.branches }}"
|
||||
set-output "modules" "${{ github.event.inputs.modules }}"
|
||||
build:
|
||||
uses: ./.github/workflows/main.yml
|
||||
secrets: inherit
|
||||
@@ -113,9 +107,9 @@ jobs:
|
||||
shield: ${{ needs.process-inputs.outputs.shield }}
|
||||
alphas: ${{ needs.process-inputs.outputs.alphas }}
|
||||
nav: ${{ needs.process-inputs.outputs.nav }}
|
||||
clipboard: ${{ needs.process-inputs.outputs.clipboard }}
|
||||
layers: ${{ needs.process-inputs.outputs.layers }}
|
||||
mapping: ${{ needs.process-inputs.outputs.mapping }}
|
||||
custom_config: ${{ needs.process-inputs.outputs.custom_config }}
|
||||
kconfig: ${{ needs.process-inputs.outputs.kconfig }}
|
||||
branches: ${{ needs.process-inputs.outputs.branches }}
|
||||
modules: ${{ needs.process-inputs.outputs.modules }}
|
||||
|
||||
110
.github/workflows/main.yml
vendored
110
.github/workflows/main.yml
vendored
@@ -14,6 +14,12 @@ on:
|
||||
alphas:
|
||||
type: string
|
||||
default: '["default"]'
|
||||
extra:
|
||||
type: string
|
||||
default: '["default"]'
|
||||
tap:
|
||||
type: string
|
||||
default: '["default"]'
|
||||
nav:
|
||||
type: string
|
||||
default: '["default"]'
|
||||
@@ -35,6 +41,10 @@ on:
|
||||
branches:
|
||||
type: string
|
||||
default: '["default"]'
|
||||
modules:
|
||||
type: string
|
||||
default: '["default"]'
|
||||
|
||||
|
||||
jobs:
|
||||
main:
|
||||
@@ -47,6 +57,8 @@ jobs:
|
||||
board: ${{ fromJSON(inputs.board) }}
|
||||
shield: ${{ fromJSON(inputs.shield) }}
|
||||
alphas: ${{ fromJSON(inputs.alphas) }}
|
||||
extra: ${{ fromJSON(inputs.extra) }}
|
||||
tap: ${{ fromJSON(inputs.tap) }}
|
||||
nav: ${{ fromJSON(inputs.nav) }}
|
||||
clipboard: ${{ fromJSON(inputs.clipboard) }}
|
||||
layers: ${{ fromJSON(inputs.layers) }}
|
||||
@@ -54,6 +66,7 @@ jobs:
|
||||
custom_config: ${{ fromJSON(inputs.custom_config) }}
|
||||
kconfig: ${{ fromJSON(inputs.kconfig) }}
|
||||
branches: ${{ fromJSON(inputs.branches) }}
|
||||
modules: ${{ fromJSON(inputs.modules) }}
|
||||
env:
|
||||
MIRYOKU_DEBUG: ${{ secrets.MIRYOKU_DEBUG }}
|
||||
steps:
|
||||
@@ -104,7 +117,7 @@ jobs:
|
||||
artifact_build_name="$artifact_build_name config_"`echo "${{ matrix.custom_config }}" | md5sum | head -c "$hash_length"`
|
||||
fi
|
||||
|
||||
for option in "alphas_${{ matrix.alphas }}" "nav_${{ matrix.nav }}" "clipboard_${{ matrix.clipboard }}" "layers_${{ matrix.layers }}" "mapping_${{ matrix.mapping }}"
|
||||
for option in "alphas_${{ matrix.alphas }}" "extra_${{ matrix.extra }}" "tap_${{ matrix.tap }}" "nav_${{ matrix.nav }}" "clipboard_${{ matrix.clipboard }}" "layers_${{ matrix.layers }}" "mapping_${{ matrix.mapping }}"
|
||||
do
|
||||
case "$option" in
|
||||
*_ ) ;;
|
||||
@@ -130,7 +143,21 @@ jobs:
|
||||
fi
|
||||
test "$MIRYOKU_DEBUG" = 'MIRYOKU_DEBUG_TRUE' && test -f "$kconfig_file" && cp "$kconfig_file" "$artifact_dir"
|
||||
|
||||
. "${GITHUB_WORKSPACE}/miryoku_zmk/.github/workflows/zmk"
|
||||
if [ -n "${{ matrix.branches }}" -a "${{ matrix.branches }}" != 'default' ]
|
||||
then
|
||||
artifact_build_name="$artifact_build_name branches_"`echo "${{ matrix.branches }}" | md5sum | head -c "$hash_length"`
|
||||
branches="${{ matrix.branches }}"
|
||||
fi
|
||||
if [ -n "${{ matrix.modules }}" -a "${{ matrix.modules }}" != 'default' ]
|
||||
then
|
||||
artifact_build_name="$artifact_build_name modules_"`echo "${{ matrix.modules }}" | md5sum | head -c "$hash_length"`
|
||||
modules="${{ matrix.modules }}"
|
||||
fi
|
||||
|
||||
artifact_build_name=`echo $artifact_build_name | tr ' ' '-'`
|
||||
echo "artifact_build_name=$artifact_build_name" >> $GITHUB_OUTPUT
|
||||
artifact_generic_name=`echo "$artifact_build_name" | sed 's/_\(left\|right\)//'`
|
||||
echo "artifact_generic_name=$artifact_generic_name" >> $GITHUB_OUTPUT
|
||||
|
||||
echo "::endgroup::"
|
||||
|
||||
@@ -143,47 +170,57 @@ jobs:
|
||||
fi
|
||||
for outboard in $outboards
|
||||
do
|
||||
outboard_repository=''
|
||||
outboard_ref=''
|
||||
outboard_from=''
|
||||
outboard_to=''
|
||||
outboard_branches=''
|
||||
outboard_modules=''
|
||||
outboard_file="${GITHUB_WORKSPACE}/miryoku_zmk/.github/workflows/outboards/$outboard"
|
||||
if [ -f "$outboard_file" ]
|
||||
then
|
||||
test "$MIRYOKU_DEBUG" = 'MIRYOKU_DEBUG_TRUE' && cp "$outboard_file" "$artifact_dir"
|
||||
. "$outboard_file"
|
||||
outboard_dir="${GITHUB_WORKSPACE}/outboards/$outboard"
|
||||
if [ -n "$outboard_repository" -a -n "$outboard_ref" ]
|
||||
outboard_dir="${GITHUB_WORKSPACE}/$outboard"
|
||||
if [ -n "$outboard_repository" -a -n "$outboard_ref" -a -n "$outboard_from" -a -n "$outboard_to" ]
|
||||
then
|
||||
if ! echo "$outboard_repository" | grep -q 'https:\/\/'
|
||||
then
|
||||
outboard_repository="https://github.com/$outboard_repository.git"
|
||||
fi
|
||||
git clone -b "$outboard_ref" --depth 1 "$outboard_repository" "$outboard_dir"
|
||||
if [ -n "$outboard_from" -a -n "$outboard_to" ]
|
||||
to="${GITHUB_WORKSPACE}/miryoku_zmk/config/$outboard_to"
|
||||
mkdir -p `dirname "$to"`
|
||||
ln -sr "$outboard_dir/$outboard_from" "$to"
|
||||
fi
|
||||
if [ -n "$outboard_branches" ]
|
||||
then
|
||||
if [ -n "$branches" ]
|
||||
then
|
||||
to="${GITHUB_WORKSPACE}/miryoku_zmk/config/$outboard_to"
|
||||
mkdir -p `dirname "$to"`
|
||||
ln -sr "$outboard_dir/$outboard_from" "$to"
|
||||
branches="$braches $outboard_branches"
|
||||
else
|
||||
branches="$outboard_branches"
|
||||
fi
|
||||
fi
|
||||
if [ -n "$outboard_modules" ]
|
||||
then
|
||||
if [ -n "$modules" ]
|
||||
then
|
||||
modules="$modules $outboard_modules"
|
||||
else
|
||||
modules="$outboard_modules"
|
||||
fi
|
||||
fi
|
||||
outboard_repository=''
|
||||
outboard_ref=''
|
||||
outboard_from=''
|
||||
outboard_to=''
|
||||
fi
|
||||
done
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::zmk"
|
||||
if [ -n "${{ matrix.branches }}" -a "${{ matrix.branches }}" != 'default' ]
|
||||
zmk=`echo "$branches" | cut -d ' ' -f 1`
|
||||
if [ -z "$zmk" ]
|
||||
then
|
||||
artifact_build_name="$artifact_build_name branches_"`echo "${{ matrix.branches }}" | md5sum | head -c "$hash_length"`
|
||||
zmk=`echo "${{ matrix.branches }}" | cut -d ' ' -f 1`
|
||||
merges=`echo "${{ matrix.branches }}" | cut -d ' ' -f 2- -s`
|
||||
zmk='zmkfirmware/zmk/main'
|
||||
fi
|
||||
|
||||
artifact_build_name=`echo $artifact_build_name | tr ' ' '-'`
|
||||
echo "artifact_build_name=$artifact_build_name" >> $GITHUB_OUTPUT
|
||||
artifact_generic_name=`echo "$artifact_build_name" | sed 's/_\(left\|right\)//'`
|
||||
echo "artifact_generic_name=$artifact_generic_name" >> $GITHUB_OUTPUT
|
||||
|
||||
user=`echo "$zmk" | cut -f 1 -d '/'`
|
||||
repo=`echo "$zmk" | cut -f 2 -d '/'`
|
||||
branch=`echo "$zmk" | cut -f 3- -d '/'`
|
||||
@@ -191,6 +228,7 @@ jobs:
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::merge"
|
||||
merges=`echo "$branches" | cut -d ' ' -f 2- -s`
|
||||
if [ -n "$merges" ]
|
||||
then
|
||||
cd "${GITHUB_WORKSPACE}/zmk"
|
||||
@@ -211,6 +249,32 @@ jobs:
|
||||
done
|
||||
fi
|
||||
echo "::endgroup::"
|
||||
|
||||
echo "::group::modules"
|
||||
|
||||
for module in $modules
|
||||
do
|
||||
user=`echo "$module" | cut -f 1 -d '/'`
|
||||
repo=`echo "$module" | cut -f 2 -d '/'`
|
||||
branch=`echo "$module" | cut -f 3- -d '/'`
|
||||
module_dir="${GITHUB_WORKSPACE}/modules/$user-$repo-"`echo "$branch" | tr '/' '_'`
|
||||
if [ ! -d "$module_dir" ]
|
||||
then
|
||||
git clone -b "$branch" --depth 1 "https://github.com/$user/$repo.git" "$module_dir"
|
||||
if [ -z "$module_dirs" ]
|
||||
then
|
||||
module_dirs="$module_dir;"
|
||||
else
|
||||
module_dirs="$module_dirs;$module_dir;"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [ -n "$module_dirs" ]
|
||||
then
|
||||
modules_arg="-DZMK_EXTRA_MODULES=\"$module_dirs\""
|
||||
echo "modules_arg=${modules_arg}" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
echo "::endgroup::"
|
||||
- name: cache
|
||||
if: true
|
||||
uses: actions/cache@v3
|
||||
@@ -244,7 +308,7 @@ jobs:
|
||||
EX_DATAERR='65'
|
||||
cd "${GITHUB_WORKSPACE}/zmk/app"
|
||||
{
|
||||
west $west_debug build -b ${{ matrix.board }} $west_build_debug -- ${{ steps.main.outputs.shield_arg }} -DZMK_CONFIG="${GITHUB_WORKSPACE}/miryoku_zmk/config" ||
|
||||
west $west_debug build -b ${{ matrix.board }} $west_build_debug -- ${{ steps.main.outputs.shield_arg }} ${{ steps.main.outputs.modules_arg }} -DZMK_CONFIG="${GITHUB_WORKSPACE}/miryoku_zmk/config" ||
|
||||
echo "$build_failed_message $?." ;
|
||||
} 2>&1 | tee "$log"
|
||||
if grep -q 'Invalid BOARD; see above.' "$log"
|
||||
|
||||
2
.github/workflows/outboards/boards/adv360
vendored
2
.github/workflows/outboards/boards/adv360
vendored
@@ -5,4 +5,4 @@ outboard_repository=KinesisCorporation/Adv360-Pro-ZMK
|
||||
outboard_ref=V2.0
|
||||
outboard_from=config/boards/arm/adv360
|
||||
outboard_to=boards/arm/adv360
|
||||
zmk=refil/zmk/adv360-z3
|
||||
outboard_branches=refil/zmk/adv360-z3
|
||||
|
||||
2
.github/workflows/outboards/boards/tipper_tf
vendored
2
.github/workflows/outboards/boards/tipper_tf
vendored
@@ -5,4 +5,4 @@ outboard_repository=weteor/Tipper_TF-Config
|
||||
outboard_ref=master
|
||||
outboard_from=boards/arm/tipper_tf
|
||||
outboard_to=boards/arm/tipper_tf
|
||||
zmk=weteor/zmk/Tipper_TF_rev2
|
||||
outboard_branches=weteor/zmk/Tipper_TF_rev2
|
||||
|
||||
24
.github/workflows/test-all-configs.yml
vendored
24
.github/workflows/test-all-configs.yml
vendored
@@ -23,6 +23,30 @@ jobs:
|
||||
"qwertz",
|
||||
"workman"
|
||||
]'
|
||||
extra: '[
|
||||
"default",
|
||||
"azerty",
|
||||
"beakl15",
|
||||
"colemak",
|
||||
"colemakdhk",
|
||||
"dvorak",
|
||||
"halmak",
|
||||
"qwerty",
|
||||
"qwertz",
|
||||
"workman"
|
||||
]'
|
||||
tap: '[
|
||||
"default",
|
||||
"azerty",
|
||||
"beakl15",
|
||||
"colemak",
|
||||
"colemakdhk",
|
||||
"dvorak",
|
||||
"halmak",
|
||||
"qwerty",
|
||||
"qwertz",
|
||||
"workman"
|
||||
]'
|
||||
nav: '[
|
||||
"default",
|
||||
"invertedt",
|
||||
|
||||
14
.github/workflows/test-inputs.yml
vendored
14
.github/workflows/test-inputs.yml
vendored
@@ -20,10 +20,6 @@ on:
|
||||
description: 'nav'
|
||||
required: false
|
||||
default: 'default'
|
||||
clipboard:
|
||||
description: 'clipboard'
|
||||
required: false
|
||||
default: 'default'
|
||||
layers:
|
||||
description: 'layers'
|
||||
required: false
|
||||
@@ -44,6 +40,10 @@ on:
|
||||
description: 'branches'
|
||||
required: false
|
||||
default: 'default'
|
||||
modules:
|
||||
description: 'modules'
|
||||
required: false
|
||||
default: 'default'
|
||||
jobs:
|
||||
process-inputs:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -52,12 +52,12 @@ jobs:
|
||||
shield: ${{ steps.process-inputs.outputs.shield }}
|
||||
alphas: ${{ steps.process-inputs.outputs.alphas }}
|
||||
nav: ${{ steps.process-inputs.outputs.nav }}
|
||||
clipboard: ${{ steps.process-inputs.outputs.clipboard }}
|
||||
layers: ${{ steps.process-inputs.outputs.layers }}
|
||||
mapping: ${{ steps.process-inputs.outputs.mapping }}
|
||||
custom_config: ${{ steps.process-inputs.outputs.custom_config }}
|
||||
kconfig: ${{ steps.process-inputs.outputs.kconfig }}
|
||||
branches: ${{ steps.process-inputs.outputs.branches }}
|
||||
modules: ${{ steps.process-inputs.outputs.modules }}
|
||||
steps:
|
||||
- name: Process inputs
|
||||
id: process-inputs
|
||||
@@ -71,12 +71,12 @@ jobs:
|
||||
set-output "shield" "${{ github.event.inputs.shield }}"
|
||||
set-output "alphas" "${{ github.event.inputs.alphas }}"
|
||||
set-output "nav" "${{ github.event.inputs.nav }}"
|
||||
set-output "clipboard" "${{ github.event.inputs.clipboard }}"
|
||||
set-output "layers" "${{ github.event.inputs.layers }}"
|
||||
set-output "mapping" "${{ github.event.inputs.mapping }}"
|
||||
set-output "custom_config" "${{ github.event.inputs.custom_config }}"
|
||||
set-output "kconfig" "${{ github.event.inputs.kconfig }}"
|
||||
set-output "branches" "${{ github.event.inputs.branches }}"
|
||||
set-output "modules" "${{ github.event.inputs.modules }}"
|
||||
build:
|
||||
uses: ./.github/workflows/main.yml
|
||||
secrets: inherit
|
||||
@@ -86,9 +86,9 @@ jobs:
|
||||
shield: ${{ needs.process-inputs.outputs.shield }}
|
||||
alphas: ${{ needs.process-inputs.outputs.alphas }}
|
||||
nav: ${{ needs.process-inputs.outputs.nav }}
|
||||
clipboard: ${{ needs.process-inputs.outputs.clipboard }}
|
||||
layers: ${{ needs.process-inputs.outputs.layers }}
|
||||
mapping: ${{ needs.process-inputs.outputs.mapping }}
|
||||
custom_config: ${{ needs.process-inputs.outputs.custom_config }}
|
||||
kconfig: ${{ needs.process-inputs.outputs.kconfig }}
|
||||
branches: ${{ needs.process-inputs.outputs.branches }}
|
||||
modules: ${{ needs.process-inputs.outputs.modules }}
|
||||
|
||||
4
.github/workflows/zmk
vendored
4
.github/workflows/zmk
vendored
@@ -1,4 +0,0 @@
|
||||
# Copyright 2022 Manna Harbour
|
||||
# https://github.com/manna-harbour/miryoku
|
||||
|
||||
zmk=zmkfirmware/zmk/main
|
||||
Reference in New Issue
Block a user