mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Release
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    tags:
 | 
						|
      - "v*"
 | 
						|
permissions:
 | 
						|
  contents: write
 | 
						|
  discussions: write
 | 
						|
concurrency:
 | 
						|
  group: ${{ github.workflow }}-${{ github.ref }}
 | 
						|
  cancel-in-progress: true
 | 
						|
 | 
						|
jobs:
 | 
						|
  make-electron:
 | 
						|
    name: Make Electron
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        arch: [x64, arm64]
 | 
						|
        os:
 | 
						|
          - name: macos
 | 
						|
            image: macos-latest
 | 
						|
            shell: bash
 | 
						|
            forge_platform: darwin
 | 
						|
          - name: linux
 | 
						|
            image: ubuntu-latest
 | 
						|
            shell: bash
 | 
						|
            forge_platform: linux
 | 
						|
          - name: windows
 | 
						|
            image: win-signing
 | 
						|
            shell: cmd
 | 
						|
            forge_platform: win32
 | 
						|
    runs-on: ${{ matrix.os.image }}
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
      - uses: pnpm/action-setup@v4
 | 
						|
      - name: Set up node & dependencies
 | 
						|
        uses: actions/setup-node@v4
 | 
						|
        with:
 | 
						|
          node-version: 22
 | 
						|
          cache: 'pnpm'
 | 
						|
      - name: Install dependencies
 | 
						|
        run: pnpm install --frozen-lockfile
 | 
						|
      - uses: nrwl/nx-set-shas@v4
 | 
						|
      - name: Run the build
 | 
						|
        uses: ./.github/actions/build-electron
 | 
						|
        with:
 | 
						|
          os: ${{ matrix.os.name }}
 | 
						|
          arch: ${{ matrix.arch }}
 | 
						|
          shell: ${{ matrix.os.shell }}
 | 
						|
          forge_platform: ${{ matrix.os.forge_platform }}
 | 
						|
        env:
 | 
						|
          APPLE_APP_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_CERTIFICATE_BASE64 }}
 | 
						|
          APPLE_APP_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APP_CERTIFICATE_PASSWORD }}
 | 
						|
          APPLE_INSTALLER_CERTIFICATE_BASE64: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_BASE64 }}
 | 
						|
          APPLE_INSTALLER_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_INSTALLER_CERTIFICATE_PASSWORD }}
 | 
						|
          APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
 | 
						|
          APPLE_ID: ${{ secrets.APPLE_ID }}
 | 
						|
          APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
 | 
						|
          WINDOWS_SIGN_EXECUTABLE: ${{ vars.WINDOWS_SIGN_EXECUTABLE }}
 | 
						|
 | 
						|
      - name: Upload the artifact
 | 
						|
        uses: actions/upload-artifact@v4
 | 
						|
        with:
 | 
						|
          name: release-desktop-${{ matrix.os.name }}-${{ matrix.arch }}
 | 
						|
          path: apps/desktop/upload/*.*
 | 
						|
 | 
						|
  build_server:
 | 
						|
    name: Build Linux Server
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        arch: [x64, arm64]
 | 
						|
        include:
 | 
						|
          - arch: x64
 | 
						|
            runs-on: ubuntu-22.04
 | 
						|
          - arch: arm64
 | 
						|
            runs-on: ubuntu-24.04-arm
 | 
						|
    runs-on: ${{ matrix.runs-on }}
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
 | 
						|
      - name: Run the build
 | 
						|
        uses: ./.github/actions/build-server
 | 
						|
        with:
 | 
						|
          os: linux
 | 
						|
          arch: ${{ matrix.arch }}
 | 
						|
 | 
						|
      - name: Upload the artifact
 | 
						|
        uses: actions/upload-artifact@v4
 | 
						|
        with:
 | 
						|
          name: release-server-linux-${{ matrix.arch }}
 | 
						|
          path: upload/*.*
 | 
						|
 | 
						|
  publish_release:
 | 
						|
    name: Publish release
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    needs:
 | 
						|
      - make-electron
 | 
						|
      - build_server
 | 
						|
    steps:
 | 
						|
      - run: mkdir upload
 | 
						|
 | 
						|
      - uses: actions/checkout@v4
 | 
						|
        with:
 | 
						|
          sparse-checkout: |
 | 
						|
            docs/Release Notes
 | 
						|
 | 
						|
      - name: Download all artifacts
 | 
						|
        uses: actions/download-artifact@v4
 | 
						|
        with:
 | 
						|
          merge-multiple: true
 | 
						|
          pattern: release-*
 | 
						|
          path: upload
 | 
						|
 | 
						|
      - name: Publish stable release
 | 
						|
        uses: softprops/action-gh-release@v2.3.2
 | 
						|
        with:
 | 
						|
          draft: false
 | 
						|
          body_path: docs/Release Notes/Release Notes/${{ github.ref_name }}.md
 | 
						|
          fail_on_unmatched_files: true
 | 
						|
          files: upload/*.*
 | 
						|
          discussion_category_name: Announcements
 | 
						|
          make_latest: ${{ !contains(github.ref, 'rc') }}
 | 
						|
          prerelease: ${{ contains(github.ref, 'rc') }}
 | 
						|
          token: ${{ secrets.RELEASE_PAT }}
 |