diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c465e48..ce56210 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -46,11 +46,23 @@ jobs: git push git push --tags - - name: Build artifacts + - name: Build x64 artifacts env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx electron-builder --linux AppImage deb --x64 + + - name: Collect x64 artifacts run: | - npm run build + mkdir -p dist-final + mv dist/*.AppImage dist/*.deb dist-final/ 2>/dev/null || true + + - name: Build arm64 artifacts + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx electron-builder --linux AppImage deb --arm64 + + - name: Collect arm64 artifacts + run: mv dist/*.AppImage dist/*.deb dist-final/ 2>/dev/null || true - name: Create GitHub Release uses: softprops/action-gh-release@v2 @@ -59,7 +71,4 @@ jobs: name: Linear v${{ steps.bump.outputs.version }} draft: false prerelease: false - files: | - dist/*.AppImage - dist/*.deb - dist/*.rpm + files: dist-final/* diff --git a/installer.sh b/installer.sh index d5a995c..999b1cb 100755 --- a/installer.sh +++ b/installer.sh @@ -3,7 +3,19 @@ set -euo pipefail VERSION="${VERSION:-0.2.4}" -APPIMAGE_URL="${APPIMAGE_URL:-https://github.com/selimaj-dev/linear-linux/releases/download/v${VERSION}/linear-linux-${VERSION}.AppImage}" + +# Detect host architecture and select the correct AppImage +ARCH="$(uname -m)" +case "${ARCH}" in + x86_64) APPIMAGE_ARCH_SUFFIX="" ;; + aarch64) APPIMAGE_ARCH_SUFFIX="-arm64" ;; + *) + echo "Unsupported architecture: ${ARCH}. Supported: x86_64, aarch64" >&2 + exit 1 + ;; +esac + +APPIMAGE_URL="${APPIMAGE_URL:-https://github.com/selimaj-dev/linear-linux/releases/download/v${VERSION}/Linear-${VERSION}${APPIMAGE_ARCH_SUFFIX}.AppImage}" INSTALL_ROOT="${INSTALL_ROOT:-/opt}" INSTALL_DIR="${INSTALL_ROOT}/linear-linux-${VERSION}" WRAPPER_PATH="/usr/local/bin/linear" @@ -63,10 +75,7 @@ sudo install -Dm644 "${ICON_SVG}" /usr/share/icons/hicolor/scalable/apps/linear. sudo install -Dm644 "${ICON_PNG}" /usr/share/icons/hicolor/512x512/apps/linear.png sudo gtk-update-icon-cache -f /usr/share/icons/hicolor || true -echo "Configuring chrome sandbox" -sudo chown root:root /opt/Linear/chrome-sandbox || true -sudo chmod 4755 /opt/Linear/chrome-sandbox || true echo "Linear ${VERSION} installed. Launch with: ${WRAPPER_PATH}"