Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: initial tauri commit #206

Merged
merged 17 commits into from
May 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"env": {
"browser": true,
"commonjs": true,
"node": true,
"es6": true
},
"parser": "@babel/eslint-parser",
Expand Down
183 changes: 183 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
name: Produce Desktop Binary Builds
on:
workflow_dispatch:
push:
branches:
- tauri
- feature/tauri
#- master
#- main

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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 }}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write

jobs:
build:
#defaults:
# run:
# working-directory: GUI/ETVR
strategy:
fail-fast: false
matrix:
node-version: [18.x]
#, macos-latest
#windows-latest,
platform: [ubuntu-latest, windows-latest]
include:
#- os: ubuntu-18.04
# rust_target: x86_64-unknown-linux-gnu
- os: windows-latest
rust_target: x86_64-pc-windows-msvc
#- os: macos-latest
# rust_target: x86_64-apple-darwin
#- os: macos-latest
# rust_target: aarch64-apple-darwin
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
token: ${{ env.GITHUB_TOKEN }}
- name: Build the App (Linux)
if: matrix.platform == 'ubuntu-latest'
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/zanzythebar/tauridocker:latest
options: -v ${{ github.workspace }}:/workspace
run: |
echo "::group::install node dependencies"
npm install -g pnpm
npm install -g typescript
pnpm install
echo "::group::tauri build"
pnpm tauri build
echo "::endgroup::"
- name: Archive the App (Linux)
if: matrix.platform == 'ubuntu-latest'
uses: actions/upload-artifact@v3
with:
name: production-files
path: |
src-tauri/target/release/bundle/deb/*.deb
src-tauri/target/release/bundle/appimage/*.AppImage
retention-days: 5
if-no-files-found: error
- name: Verify build (Linux)
if: matrix.platform == 'ubuntu-latest'
run: |
ls -la src-tauri/target/release/bundle/appimage
ls -la src-tauri/target/release/bundle/deb

- name: Node.js setup ${{ matrix.node-version }} (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
#cache: "pnpm"
# node-version-file: '.nvmrc'

- name: Install dependencies (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
run: |
echo "::group::install node dependencies"
npm install -g pnpm
npm install -g typescript
pnpm install
echo "::endgroup::"

- name: Setup Rust (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: actions-rs/toolchain@v1
with:
default: true
override: true
profile: minimal
toolchain: stable
target: ${{ matrix.platform.rust_target }}

- name: Cache Rust (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: Swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"

- name: Build the app (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: JonasKruckenberg/tauri-build@v1.2.3
id: tauri_build
env:
GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
ENABLE_CODE_SIGNING: ${{ env.APPLE_CERTIFICATE }}
#APPLE_CERTIFICATE: ${{ env.APPLE_CERTIFICATE }}
#APPLE_CERTIFICATE_PASSWORD: ${{ env.APPLE_CERTIFICATE_PASSWORD }}
#APPLE_SIGNING_IDENTITY: ${{ env.APPLE_SIGNING_IDENTITY }}
#APPLE_ID: ${{ env.APPLE_ID }}
#APPLE_PASSWORD: ${{ env.APPLE_PASSWORD }}
with:
target: ${{ matrix.platform.rust_target }}

- name: Archive the App (Windows & MacOS)
if: matrix.platform == 'windows-latest' || matrix.platform == 'macos-latest'
uses: actions/upload-artifact@v3
with:
name: production-files
path: "${{ join(fromJSON(steps.tauri_build.outputs.artifacts), '\n') }}"

deploy:
runs-on: ubuntu-latest
name: Deploy
needs: [build]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Create Directory
run: mkdir -p dist
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: production-files
path: ./dist
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 18
- run: npm install -g conventional-changelog-conventionalcommits
- run: npm install -g semantic-release@v21.0.2
- run: npm install -g @semantic-release/exec
- run: npm install -g @semantic-release/git
- run: npm install -g @semantic-release/release-notes-generator
- run: npm install -g @semantic-release/changelog
- run: npm install -g @semantic-release/github
- name: Release
env:
GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
run: |
sudo apt-get install -y jq
chmod +x ./scripts/prepareCMD.sh
semantic-release

cleanup:
name: Cleanup actions
needs:
- deploy
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: "♻️ remove build artifacts"
uses: geekyeggo/delete-artifact@v1
with:
name: production-files
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,4 @@
/node_modules
/dist
/.vs
/web/docs/
pnpm-lock.yaml
/web/docs/
194 changes: 194 additions & 0 deletions .releaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
{
"branches": [
"main",
"master",
"release",
{
"name": "tauri",
"prerelease": true
},
{
"name": "feature/tauri",
"prelease": true
}
],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"parserOpts": {
"noteKeywords": [
"BREAKING CHANGE",
"BREAKING CHANGES",
"BREAKING"
]
},
"releaseRules": [
{
"breaking": true,
"release": "major"
},
{
"type": "feat",
"release": "minor"
},
{
"type": "fix",
"release": "patch"
},
{
"type": "perf",
"release": "patch"
},
{
"type": "revert",
"release": "patch"
},
{
"type": "docs",
"scope": "docs-*",
"release": "minor"
},
{
"type": "docs",
"release": false
},
{
"type": "style",
"release": "patch"
},
{
"type": "refactor",
"release": "patch"
},
{
"type": "test",
"release": "patch"
},
{
"type": "build",
"release": "patch"
},
{
"type": "ci",
"scope": "ci-*",
"release": "patch"
},
{
"type": "chore",
"release": false
},
{
"type": "no-release",
"release": false
}
]
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"parserOpts": {
"noteKeywords": [
"BREAKING CHANGE",
"BREAKING CHANGES",
"BREAKING"
]
},
"writerOpts": {
"commitsSort": [
"subject",
"scope"
]
},
"presetConfig": {
"types": [
{
"type": "feat",
"section": "🍕 Features"
},
{
"type": "feature",
"section": "🍕 Features"
},
{
"type": "fix",
"section": "🐛 Bug Fixes"
},
{
"type": "perf",
"section": "🔥 Performance Improvements"
},
{
"type": "revert",
"section": "⏩ Reverts"
},
{
"type": "docs",
"section": "📝 Documentation"
},
{
"type": "style",
"section": "🎨 Styles"
},
{
"type": "refactor",
"section": "🧑‍💻 Code Refactoring"
},
{
"type": "test",
"section": "✅ Tests"
},
{
"type": "build",
"section": "🤖 Build System"
},
{
"type": "ci",
"section": "🔁 Continuous Integration"
}
]
}
}
],
[
"@semantic-release/changelog",
{
"changelogTitle": "# 📦 Changelog \n[![conventional commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n[![semantic versioning](https://img.shields.io/badge/semantic%20versioning-2.0.0-green.svg)](https://semver.org)\n> All notable changes to this project will be documented in this file"
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "./scripts/prepareCMD.sh ${nextRelease.version}",
"publishCmd": "echo Publishing ${nextRelease.version}"
}
],
[
"@semantic-release/github",
{
"addReleases": "bottom",
"assets": [
{
"path": "./dist/**/*.{msi,deb,rpm,AppImage,dmg,zip}"
}
]
}
],
[
"@semantic-release/git",
{
"assets": [
"package.json",
"src-tauri/tauri.conf.json",
"src-tauri/Cargo.toml",
"LICENSE*",
"CHANGELOG.md"
],
"message": "chore(${nextRelease.type}): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}
]
]
}
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer", "esbenp.prettier-vscode"]
}
Loading