diff options
Diffstat (limited to 'github.yml')
-rw-r--r-- | github.yml | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/github.yml b/github.yml deleted file mode 100644 index 2d38f93..0000000 --- a/github.yml +++ /dev/null @@ -1,109 +0,0 @@ -name: Fetch and build layout - -on: - workflow_dispatch: - inputs: - layout_id: - description: "Layout id available in URL https://configure.zsa.io/voyager/layouts/[ID_IS_HERE]/latest" - required: true - default: "g7jjw" - layout_geometry: - description: "voyager | moonlander | ergodox_ez | ergodox_ez/stm32/glow | ergodox_ez/stm32/shine | ergodox_ez/m32u4/glow | ergodox_ez/m32u4/shine | planck_ez | planck_ez/glow" - required: true - default: "voyager" - -permissions: - contents: write - -jobs: - fetch-and-build-layout: - runs-on: ubuntu-latest - - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - with: - ref: oryx - - - name: Download the full history for the merge to work correctly - run: git pull --unshallow - - - name: Download layout source - id: download-layout-source - run: | - response=$(curl --location 'https://oryx.zsa.io/graphql' --header 'Content-Type: application/json' --data '{"query":"query getLayout($hashId: String!, $revisionId: String!, $geometry: String) {layout(hashId: $hashId, geometry: $geometry, revisionId: $revisionId) { revision { hashId, qmkVersion, title }}}","variables":{"hashId":"${{ github.event.inputs.layout_id }}","geometry":"${{ github.event.inputs.layout_geometry }}","revisionId":"latest"}}' | jq '.data.layout.revision | [.hashId, .qmkVersion, .title]') - hash_id=$(echo "${response}" | jq -r '.[0]') - firmware_version=$(printf "%.0f" $(echo "${response}" | jq -r '.[1]')) - change_description=$(echo "${response}" | jq -r '.[2]') - if [[ -z "${change_description}" ]]; then - change_description="latest layout modification made with Oryx" - fi - - curl -L "https://oryx.zsa.io/source/${hash_id}" -o source.zip - - echo firmware_version=${firmware_version} >> "$GITHUB_OUTPUT" - echo change_description=${change_description} >> "$GITHUB_OUTPUT" - - - name: Unzip the source file - run: | - unzip -oj source.zip '*_source/*' -d ${{ github.event.inputs.layout_id }} - rm source.zip - - - name: Commit and Push changes - run: | - git config --local user.name "github-actions" - git config --local user.email "github-actions@github.com" - git add . - git commit -m "✨(oryx): ${{ steps.download-layout-source.outputs.change_description }}" || echo "No layout change" - git push - - - name: Merge Oryx with custom QMK - run: | - git fetch origin main - git checkout -B main origin/main - git merge -Xignore-all-space oryx - git push - - - name: Checkout the right firmware branch - run: | - cd qmk_firmware - git submodule update --init --remote - git fetch origin firmware${{ steps.download-layout-source.outputs.firmware_version }} - git checkout -B firmware${{ steps.download-layout-source.outputs.firmware_version }} origin/firmware${{ steps.download-layout-source.outputs.firmware_version }} - git submodule update --init --recursive - - - name: Build qmk docker image - run: docker build -t qmk . - - - name: Build the layout - id: build-layout - run: | - # Set keyboard directory and make prefix based on firmware version - if [ "${{ steps.download-layout-source.outputs.firmware_version }}" -ge 24 ]; then - keyboard_directory="qmk_firmware/keyboards/zsa" - make_prefix="zsa/" - else - keyboard_directory="qmk_firmware/keyboards" - make_prefix="" - fi - - # Copy layout files to the qmk folder - rm -rf ${keyboard_directory}/${{ github.event.inputs.layout_geometry }}/keymaps/${{ github.event.inputs.layout_id }} - mkdir -p ${keyboard_directory}/${{ github.event.inputs.layout_geometry }}/keymaps && cp -r ${{ github.event.inputs.layout_id }} "$_" - - # Build the layout - docker run -v ./qmk_firmware:/root --rm qmk /bin/sh -c " - qmk setup zsa/qmk_firmware -b firmware${{ steps.download-layout-source.outputs.firmware_version }} -y - make ${make_prefix}${{ github.event.inputs.layout_geometry }}:${{ github.event.inputs.layout_id }} - " - - # Find and export built layout - normalized_layout_geometry="$(echo "${{ github.event.inputs.layout_geometry }}" | sed 's/\//_/g')" - echo built_layout_file=$(find ./qmk_firmware -maxdepth 1 -type f -regex ".*${normalized_layout_geometry}.*\.\(bin\|hex\)$") >> "$GITHUB_OUTPUT" - echo normalized_layout_geometry=${normalized_layout_geometry} >> "$GITHUB_OUTPUT" - - - name: Upload layout - uses: actions/upload-artifact@v4 - with: - name: ${{ steps.build-layout.outputs.normalized_layout_geometry }}_${{ github.event.inputs.layout_id }} - path: ${{ steps.build-layout.outputs.built_layout_file }} |