Release v0.6.7 #145
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-FileCopyrightText: 2025-2026 Paul Colby <[email protected]> | |
| # SPDX-License-Identifier: MIT | |
| name: Build | |
| on: | |
| push: | |
| workflow_dispatch: | |
| permissions: { } # ie none. | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| pkg: | |
| name: AppImage | |
| runs-on: ubuntu-22.04 # Last LTS release with libwebkit2gtk-4.0.so.37 library (as required by sdkmanager). | |
| steps: | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-mark hold firefox grub-efi-amd64-signed | |
| sudo apt update && sudo apt upgrade | |
| sudo apt install imagemagick libwebkit2gtk-4.0-37 | |
| - name: Install linuxdeploy | |
| uses: pcolby/install-linuxdeploy@v1 | |
| with: | |
| plugins: gtk | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Build AppImage | |
| id: appimage | |
| run: | | |
| ./build-appimage.sh "${SDK_VERSION}" | |
| find . -maxdepth 1 -name 'Connect_IQ_*.AppImage' -type f -printf '%f\n' | | |
| sed -Ee 's/^Connect_IQ_([^-]+)-/\L\1\E=&/' | tee -a "${GITHUB_OUTPUT}" | |
| env: | |
| BUILD_ID: ${{ github.run_number }} | |
| LINUXDEPLOY_WEBKITMOD_VERBOSE: true | |
| SDK_VERSION: ${{ matrix.sdk }} | |
| - run: find . | |
| - name: Upload SDK Manager AppImage | |
| if: matrix.sdk == 'manager' | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ steps.appimage.outputs.sdk_manager }} | |
| path: ${{ steps.appimage.outputs.sdk_manager }} | |
| if-no-files-found: error | |
| - name: Upload Monkey Motion AppImage | |
| if: matrix.sdk != 'manager' | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ steps.appimage.outputs.monkey_motion }} | |
| path: ${{ steps.appimage.outputs.monkey_motion }} | |
| if-no-files-found: error | |
| - name: Upload Simulator AppImage | |
| if: matrix.sdk != 'manager' | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: ${{ steps.appimage.outputs.simulator }} | |
| path: ${{ steps.appimage.outputs.simulator }} | |
| if-no-files-found: error | |
| timeout-minutes: 15 | |
| strategy: | |
| matrix: | |
| # Tip: curl https://developer.garmin.com/downloads/connect-iq/sdks/sdks.json | | |
| # jq -r '[.[].version|[split(".")[]|tonumber]]|sort[]|" - "+join(".")' | |
| sdk: | |
| - manager | |
| - 8.1.0 | |
| - 8.1.1 | |
| # 8.2.0 Removed from Garmin's manifest (`sdks.json`), around 2025-06-20Z. | |
| - 8.2.1 | |
| - 8.2.2 | |
| - 8.2.3 | |
| - 8.3.0 | |
| - 8.4.0 | |
| fail-fast: false | |
| # This could be part of the pkg job above, but it uses elevated permissions, not required for the pkg steps. | |
| continuous: | |
| name: Tag continuous release | |
| permissions: | |
| contents: write | |
| needs: pkg # Actually don't "need" pkg, but don't want to do this unless pkg passed first. | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Update continuous tag | |
| run: > | |
| gh api "repos/${GITHUB_REPOSITORY}/git/refs/tags/continuous" \ | |
| --field 'force=true' \ | |
| --header "Accept: application/vnd.github+json" \ | |
| --header "X-GitHub-Api-Version: 2022-11-28" \ | |
| --method 'PATCH' \ | |
| --raw-field "sha=${GITHUB_SHA}" | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| - name: Update release timestamp | |
| run: | | |
| gh release edit continuous --draft=true | |
| gh release edit continuous --draft=false --latest=false | |
| env: | |
| GH_REPO: ${{ github.repository }} | |
| GH_TOKEN: ${{ github.token }} | |
| timeout-minutes: 3 | |
| draft: | |
| name: Draft release | |
| permissions: | |
| contents: write | |
| if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Create draft release | |
| run: gh release view "${REF_NAME}" || gh release create "${REF_NAME}" --draft --generate-notes --verify-tag | |
| env: | |
| GH_REPO: ${{ github.repository }} | |
| GH_TOKEN: ${{ github.token }} | |
| REF_NAME: ${{ github.ref_name == 'main' && 'continuous' || github.ref_name }} | |
| timeout-minutes: 3 | |
| release: | |
| name: Release artifacts | |
| permissions: | |
| contents: write | |
| needs: | |
| - draft | |
| - pkg | |
| if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Remove old AppImages | |
| if: github.ref_name == 'main' | |
| run: >- | |
| gh release view continuous --json assets --jq '.assets[]|select(.name|test(".AppImage$")).name' | | |
| xargs -I{} gh release delete-asset 'continuous' '{}' | |
| env: | |
| GH_REPO: ${{ github.repository }} | |
| GH_TOKEN: ${{ github.token }} | |
| - name: Download AppImages | |
| uses: actions/download-artifact@v7 | |
| with: | |
| pattern: '*.AppImage' | |
| - name: Release AppImages | |
| run: gh release upload "${REF_NAME}" -- *.AppImage/*.AppImage | |
| env: | |
| GH_REPO: ${{ github.repository }} | |
| GH_TOKEN: ${{ github.token }} | |
| REF_NAME: ${{ github.ref_name == 'main' && 'continuous' || github.ref_name }} | |
| timeout-minutes: 5 |