Skip to content

fix(api): transparently proxy responses compact endpoint #51

fix(api): transparently proxy responses compact endpoint

fix(api): transparently proxy responses compact endpoint #51

Workflow file for this run

name: Release
on:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.23"
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: "20"
cache: "npm"
cache-dependency-path: |
frontend/package-lock.json
desktop/package-lock.json
- name: Sync release metadata
run: bash scripts/release/sync_release_metadata.sh --tag "${{ github.ref_name }}"
- name: Install frontend dependencies
run: npm --prefix frontend ci
- name: Install desktop dependencies
run: npm --prefix desktop ci
- name: Backend tests
run: go test ./...
working-directory: backend
- name: Frontend tests
run: npm --prefix frontend run test
- name: Release script tests
run: |
bash scripts/test/desktop_updater_config_test.sh
bash scripts/test/release_updater_signing_key_test.sh
bash scripts/test/release_version_helpers_test.sh
bash scripts/test/sync_release_metadata_test.sh
bash scripts/test/collect_release_assets_test.sh
bash scripts/test/release_updater_manifest_test.sh
bash scripts/test/package_local_release_test.sh
build:
needs: test
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- release_platform: macos
runner: macos-latest
tauri_target: universal-apple-darwin
bundles: app,dmg
sidecar_script: scripts/desktop/build_sidecar_macos.sh
artifact_name: release-assets-macos
rust_targets: aarch64-apple-darwin,x86_64-apple-darwin
- release_platform: windows
runner: windows-latest
tauri_target: x86_64-pc-windows-msvc
bundles: msi
sidecar_script: scripts/desktop/build_sidecar_windows.sh
artifact_name: release-assets-windows
rust_targets: x86_64-pc-windows-msvc
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.23"
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: "20"
cache: "npm"
cache-dependency-path: |
frontend/package-lock.json
desktop/package-lock.json
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.rust_targets }}
- name: Sync release metadata
run: bash scripts/release/sync_release_metadata.sh --tag "${{ github.ref_name }}"
- name: Install frontend dependencies
run: npm --prefix frontend ci
- name: Install desktop dependencies
run: npm --prefix desktop ci
- name: Build sidecar
run: bash "${{ matrix.sidecar_script }}"
- name: Desktop sidecar tests
run: |
cd desktop/src-tauri
cargo test sidecar_ -q
- name: Build desktop bundles
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
run: |
npm --prefix desktop run tauri build -- \
--target "${{ matrix.tauri_target }}" \
--bundles "${{ matrix.bundles }}"
- name: Prepare notarization key
if: matrix.release_platform == 'macos'
env:
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
run: |
if [[ -z "${APPLE_API_KEY:-}" ]]; then
exit 0
fi
key_path="$RUNNER_TEMP/AuthKey.p8"
printf '%s' "$APPLE_API_KEY" >"$key_path"
echo "APPLE_API_KEY_PATH=$key_path" >>"$GITHUB_ENV"
- name: Notarize macOS bundle
if: matrix.release_platform == 'macos'
env:
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_API_KEY_PATH: ${{ env.APPLE_API_KEY_PATH }}
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
run: bash scripts/desktop/notarize_macos.sh
- name: Collect release assets
env:
RELEASE_VERSION: ${{ github.ref_name }}
RELEASE_PLATFORM: ${{ matrix.release_platform }}
run: bash scripts/desktop/collect_release_assets.sh
- name: Upload release assets
uses: actions/upload-artifact@v6
with:
name: ${{ matrix.artifact_name }}
path: release-assets/*
if-no-files-found: error
publish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: "20"
- name: Download release assets
uses: actions/download-artifact@v4
with:
path: dist
- name: Generate updater manifest
run: |
bash scripts/release/generate_updater_manifest.sh \
--tag "${{ github.ref_name }}" \
--repo "${{ github.repository }}" \
--assets-root dist \
--output dist/latest.json \
--notes "See GitHub release for details."
- name: Publish GitHub release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
dist/**/*.zip
dist/**/*.dmg
dist/**/*.msi
dist/**/*.msi.sig
dist/**/*.app.tar.gz
dist/**/*.app.tar.gz.sig
dist/latest.json
dist/**/aigate-*-SHA256SUMS.txt
fail_on_unmatched_files: true