Skip to content

Release v0.6.7

Release v0.6.7 #145

Workflow file for this run

# 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