non working start of new utility function to make face with holes in it #8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Produce Desktop Binary Builds | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- dev | |
#- 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 |