Skip to content

Release

Release #12

Workflow file for this run

name: Release
on:
workflow_dispatch:
# NOTE: For Linux builds, we can only build with Ubuntu. It should be the oldest base system we intend to support. See PR-759 & https://tauri.app/v1/guides/building/linux for reference.
jobs:
desktop-main:
strategy:
fail-fast: true
matrix:
settings:
- host: macos-latest
target: x86_64-apple-darwin
bundles: dmg
- host: macos-latest
target: aarch64-apple-darwin
bundles: dmg
- host: windows-latest
target: x86_64-pc-windows-msvc
bundles: msi
- host: ubuntu-20.04
target: x86_64-unknown-linux-gnu
bundles: appimage
name: Desktop - Main ${{ matrix.settings.target }}
runs-on: ${{ matrix.settings.host }}
steps:
- name: Maximize build space
if: ${{ runner.os == 'Linux' }}
uses: easimon/maximize-build-space@master
with:
swap-size-mb: 3072
root-reserve-mb: 6144
remove-dotnet: 'true'
remove-codeql: 'true'
remove-haskell: 'true'
remove-docker-images: 'true'
- name: Checkout repository
uses: actions/checkout@v3
- name: Symlink target to C:\
if: ${{ runner.os == 'Windows' }}
shell: powershell
run: |
New-Item -ItemType Directory -Force -Path C:\ollama_target
New-Item -Path target -ItemType Junction -Value C:\ollama_target
- name: Remove 32-bit libs
if: ${{ runner.os == 'Linux' }}
run: |
dpkg -l | grep i386
sudo apt-get purge --allow-remove-essential libc6-i386 ".*:i386"
sudo dpkg --remove-architecture i386
- name: Setup Node.js, pnpm and dependencies
uses: ./.github/actions/setup-pnpm
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup System and Rust
uses: ./.github/actions/setup-system
env:
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
targets: ${{ matrix.settings.target }}
- name: Build
run: |
pnpm tauri build --ci -v --target ${{ matrix.settings.target }} --bundles ${{ matrix.settings.bundles }}
env:
NODE_OPTIONS: --max-old-space-size=4096
- name: Publish Artifacts
uses: ./.github/actions/publish-artifacts
with:
target: ${{ matrix.settings.target }}
profile: release