Skip to content

Commit c55ffec

Browse files
committed
refactor(ci): use flake to build SVGs
1 parent 2b5eed8 commit c55ffec

File tree

2 files changed

+12
-76
lines changed

2 files changed

+12
-76
lines changed

.github/workflows/draw-keymaps.yml

+12-60
Original file line numberDiff line numberDiff line change
@@ -21,72 +21,24 @@ jobs:
2121
steps:
2222

2323
- name: Checkout
24-
uses: actions/checkout@v3
24+
uses: actions/checkout@v4
2525
with:
26-
fetch-depth: 1 # Set to 2 if amending, or 1 if creating a new commit
26+
# Set to 2 if amending, or 1 if creating a new commit
27+
fetch-depth: 1
2728
submodules: recursive
2829

29-
- name: Install python dependencies
30-
run: |
31-
pip install "git+https://github.com/caksoylar/keymap-drawer.git@${{ env.km_dr_version }}"
32-
pip install pyyaml
30+
- name: Install nix
31+
uses: DeterminateSystems/nix-installer-action@main
32+
- name: Setup nix cache
33+
uses: DeterminateSystems/magic-nix-cache-action@main
3334

34-
# TODO get keyboads & configs dynamically
35-
- name: Parse keymap
36-
run: |
37-
# TODO set generic vars in one place globally
38-
CONFIG="${{ env.km_dr_config }}"
35+
- name: Draw keymaps
36+
run: nix build .#keymap-drawer-svgs
3937

40-
for KEYMAP in ${{ env.keymap_path }}; do
41-
KEYBOARD=$(basename -s .keymap "$KEYMAP")
42-
OUTPUT="${{ env.output_folder }}/${KEYBOARD}.yaml"
43-
44-
# TODO consider running through `parallel`?
45-
echo "Parsing keymap for $KEYBOARD"
46-
keymap -c "$CONFIG" parse -z "$KEYMAP" > "$OUTPUT"
47-
done
48-
49-
- name: Draw keymap for all layers
50-
run: |
51-
CONFIG="${{ env.km_dr_config }}"
52-
53-
# FIXME can glob false positeves, e.g. previous keymaps
54-
for KEYMAP in ${{ env.output_folder }}/*.yaml; do
55-
KEYBOARD=$(basename -s .yaml "$KEYMAP")
56-
OUTPUT="${{ env.output_folder }}/${KEYBOARD}.svg"
57-
58-
echo "Drawing all layers for $KEYBOARD"
59-
keymap -c "$CONFIG" draw "$KEYMAP" > "$OUTPUT"
60-
done
61-
62-
63-
- name: Draw seperate layer keymaps
64-
run: |
65-
# Ensure errors propagate when piping stdout
66-
set -o pipefail
67-
68-
export CONFIG="${{ env.km_dr_config }}"
69-
70-
# Function to draw the given layer's keymap
71-
draw() {
72-
KEYMAP="$1"
73-
LAYER="$2"
74-
KEYBOARD=$(basename -s .yaml "$KEYMAP")
75-
OUTPUT="${{ env.output_folder }}/${KEYBOARD}_${LAYER}.svg"
76-
77-
echo "Drawing $LAYER layer for $KEYBOARD"
78-
keymap -c "$CONFIG" draw "$KEYMAP" -s "$LAYER" > "$OUTPUT"
79-
}
80-
export -f draw # Ensure the draw function can be called by `parallel`'s subprocess
81-
82-
# FIXME can glob false positeves, e.g. previous keymaps
83-
for KEYMAP in ${{ env.output_folder }}/*.yaml; do
84-
# Run `draw()` for each layer in the keymap. Up to 4 layers at a time...
85-
echo "Drawing layers in parallel"
86-
python3 .github/workflows/layers.py "$KEYMAP" \
87-
| parallel --jobs 4 draw "$KEYMAP"
88-
done
38+
- name: Copy SVGs into repo
39+
run: cp result/* img
8940

41+
# TODO print to $GITHUB_STEP_SUMMARY
9042
- name: Commit changes
9143
uses: stefanzweifel/git-auto-commit-action@v4
9244
with:

.github/workflows/layers.py

-16
This file was deleted.

0 commit comments

Comments
 (0)