Code signing + auto updater (#122)

* Code signing + auto updater

* remove dist

* update actions

* fixes

* fix more

* commit

* fix cache dir

* quotes

* fix hopefully?

* why yaml

* Fix cache dep path

* Fix updating artifacts

* fix ubuntu ver

* enable autoupdater

* fix pubkey

* fix invalid config

* pass in signing vars

* update pubkey

* Improve compile times
This commit is contained in:
Geometrically
2023-05-23 11:14:22 -07:00
committed by GitHub
parent 1b47eb71e1
commit 8ff1b0d108
11 changed files with 148 additions and 75 deletions

View File

@@ -13,28 +13,30 @@ jobs:
run:
working-directory: ./theseus_cli
steps:
- uses: actions/checkout@v2
- name: install dependencies (ubuntu only)
- name: Checkout
uses: actions/checkout@v3
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Get build cache
id: cache-build
uses: actions/cache@v2
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
path: ../target/**
key: ${{ runner.os }}-theseus
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- uses: actions-rs/cargo@v1
name: Build program
with:
command: build
args: --bin theseus_cli
- name: Run Lint
uses: actions-rs/clippy-check@v1
with:

View File

@@ -13,22 +13,19 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js
- name: Sync node version and setup cache
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Get yarn cache
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
node-version: 16
cache: 'yarn'
cache-dependency-path: "theseus_gui"
- name: Install dependencies
run: yarn install --immutable --immutable-cache --check-cache
- name: Run Lint
run: yarn run lint
- name: Build
run: yarn run build
run: yarn run build

View File

@@ -14,46 +14,80 @@ jobs:
defaults:
run:
working-directory: ./theseus_gui
steps:
- uses: actions/checkout@v3
- name: setup node
- name: Rust setup (mac)
if: startsWith(matrix.platform, 'macos')
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
targets: aarch64-apple-darwin
- name: Rust setup
if: "!startsWith(matrix.platform, 'macos')"
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Sync node version and setup cache
uses: actions/setup-node@v3
with:
node-version: 16
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
cache: 'yarn'
cache-dependency-path: "theseus_gui"
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Get build cache
id: cache-build
uses: actions/cache@v2
with:
path: ../target/**
key: ${{ runner.os }}-theseus
- name: Get yarn cache
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: install frontend dependencies
run: yarn install --immutable --immutable-cache --check-cache
- uses: tauri-apps/tauri-action@v0
- name: build app (macos)
uses: tauri-apps/tauri-action@v0
id: build_os_mac
if: startsWith(matrix.platform, 'macos')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run Lint
if: matrix.platform == 'ubuntu-20.04'
uses: actions-rs/clippy-check@v1
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --bin theseus_cli
args: --target universal-apple-darwin
- name: build app
uses: tauri-apps/tauri-action@v0
id: build_os
if: "!startsWith(matrix.platform, 'macos')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
- name: upload ${{ matrix.platform }}
uses: actions/upload-artifact@v3
if: startsWith(matrix.platform, 'macos')
with:
name: ${{ matrix.platform }}
path: "${{ join(fromJSON(steps.build_os_mac.outputs.artifactPaths), '\n') }}"
- name: upload ${{ matrix.platform }}
uses: actions/upload-artifact@v3
if: "!startsWith(matrix.platform, 'macos')"
with:
name: ${{ matrix.platform }}
path: "${{ join(fromJSON(steps.build_os.outputs.artifactPaths), '\n') }}"