Skip to content

Commit

Permalink
gha: workflow_dispatch with manual version and branch name
Browse files Browse the repository at this point in the history
  • Loading branch information
tiero committed Nov 1, 2023
1 parent 4c3dc48 commit a8ddd01
Show file tree
Hide file tree
Showing 2 changed files with 182 additions and 100 deletions.
112 changes: 112 additions & 0 deletions .github/workflows/on-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Release on user input

on:
workflow_dispatch:
inputs:
branchName:
description: 'Branch Name'
required: true
version:
description: 'New version'
required: true

jobs:
publish-tauri:
permissions: write-all
strategy:
fail-fast: false
matrix:
platform: [macos-latest]

runs-on: ${{ matrix.platform }}

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Rust setup
uses: dtolnay/rust-toolchain@stable

- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install missing Rust target for universal Mac build
if: matrix.platform == 'macos-latest'
run: rustup target add aarch64-apple-darwin

- 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: "lts/*"
cache: "npm"

- name: Install frontend dependencies
run: npm install


- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ^1.20.1
id: go

- name: Install dasel
run: |
go install github.com/tomwright/dasel/cmd/dasel@latest
- name: Update with latest branch
run: |
git config --local user.email "$(git log --format='%ae' HEAD^!)"
git config --local user.name "$(git log --format='%an' HEAD^!)"
git config pull.rebase true
git stash
git fetch origin ${{ github.event.inputs.branchName }}
git pull origin ${{ github.event.inputs.branchName }}
git stash pop || true
- name: Increment version
run: |
dasel put string -f package.json ".version" "${{ github.event.inputs.version }}"
dasel put string -f src-tauri/tauri.conf.json ".package.version" "${{ github.event.inputs.version }}"
dasel put string -f src-tauri/Cargo.toml ".package.version" "${{ github.event.inputs.version }}"
- name: Build the app
uses: tauri-apps/tauri-action@dev
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
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 }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
with:
tagName: ${{ github.event.inputs.version }}
releaseName: "PremAI App ${{ github.event.inputs.version }}"
releaseBody: "See the assets to download and install this version."
releaseDraft: false
includeDebug: true
updaterJsonKeepUniversal: true
args: ${{matrix.platform == 'ubuntu-20.04' && '--target x86_64-unknown-linux-gnu' || '--target universal-apple-darwin'}}


# Commit package.json, tauri.conf.json and Cargo.toml to master
- name: Commit & Push
continue-on-error: true
run: |
git add .
git commit -m "${{ github.event.inputs.version }}"
git push origin HEAD:${{ github.event.inputs.branchName }}
170 changes: 70 additions & 100 deletions .github/workflows/on-tag.yaml
Original file line number Diff line number Diff line change
@@ -1,112 +1,82 @@
name: On Tag

on:
push:
tags:
- "*"

tags: ["v*"]
jobs:
publish-tauri:
permissions: write-all
strategy:
fail-fast: false
matrix:
platform: [macos-latest, ubuntu-20.04]

runs-on: ${{ matrix.platform }}

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Rust setup
uses: dtolnay/rust-toolchain@stable

- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install missing Rust target for universal Mac build
if: matrix.platform == 'macos-latest'
run: rustup target add aarch64-apple-darwin

- 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: "lts/*"
cache: "npm"

- name: Install frontend dependencies
run: npm install

- name: tag
id: next_tag
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT

- name: version
id: next_version
run: |
tag=${{ steps.next_tag.outputs.tag }}
echo "version=${tag:1}" >> $GITHUB_OUTPUT
- name: Update with latest main branch
run: |
git config --local user.email "$(git log --format='%ae' HEAD^!)"
git config --local user.name "$(git log --format='%an' HEAD^!)"
git config pull.rebase true
git stash
git fetch origin main
git pull origin main
git stash pop || true
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ^1.20.1
id: go

- name: Install dasel
run: |
go install github.com/tomwright/dasel/cmd/dasel@latest
- name: Increment version
run: |
dasel put string -f package.json ".version" "${{ steps.next_version.outputs.version }}"
dasel put string -f src-tauri/tauri.conf.json ".package.version" "${{ steps.next_version.outputs.version }}"
dasel put string -f src-tauri/Cargo.toml ".package.version" "${{ steps.next_version.outputs.version }}"
- name: Build the app
uses: tauri-apps/tauri-action@dev
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
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 }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
with:
tagName: ${{ steps.next_tag.outputs.tag }}
releaseName: "PremAI App ${{ steps.next_tag.outputs.tag }}"
releaseBody: "See the assets to download and install this version."
releaseDraft: false
includeDebug: true
updaterJsonKeepUniversal: true
args: ${{matrix.platform == 'ubuntu-20.04' && '--target x86_64-unknown-linux-gnu' || '--target universal-apple-darwin'}}
# Commit package.json, tauri.conf.json and Cargo.toml to master
- name: Commit & Push
run: |
git add .
git commit -m "${{ steps.next_tag.outputs.tag }}"
git push origin HEAD:main
- uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Install Linux tauri dependencies
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: Install missing Rust target for universal Mac build
if: startsWith(matrix.platform, 'macos')
run: rustup target add aarch64-apple-darwin
- uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
- uses: actions/setup-node@v3
with:
node-version: "lts/*"
cache: npm
- run: npm install
- name: metadata
id: metadata
run: |
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Update with latest main branch
run: |
git config --local user.email "$(git log --format='%ae' HEAD^!)"
git config --local user.name "$(git log --format='%an' HEAD^!)"
git config pull.rebase true
git stash
git fetch origin main
git pull origin main
git stash pop || true
- uses: actions/setup-go@v4
with: {go-version: ^1.20.1}
id: go
- name: Install dasel
run: 'go install github.com/tomwright/dasel/cmd/dasel@latest'
- name: Increment version
run: |
dasel put string -f package.json ".version" "${{ steps.metadata.outputs.version }}"
dasel put string -f src-tauri/tauri.conf.json ".package.version" "${{ steps.metadata.outputs.version }}"
dasel put string -f src-tauri/Cargo.toml ".package.version" "${{ steps.metadata.outputs.version }}"
- name: Build the app
uses: tauri-apps/tauri-action@dev
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
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 }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
with:
tagName: ${{ steps.metadata.outputs.tag }}
releaseName: "PremAI App ${{ steps.metadata.outputs.tag }}"
releaseBody: "See the assets to download and install this version."
releaseDraft: false
includeDebug: true
updaterJsonKeepUniversal: true
args: ${{startsWith(matrix.platform, 'ubuntu') && '--target x86_64-unknown-linux-gnu' || '--target universal-apple-darwin'}}
- name: Commit & Push
run: |
# Commit package.json, tauri.conf.json, Cargo.toml
git add .
git commit -m "${{ steps.metadata.outputs.tag }}"
git push origin HEAD:main

0 comments on commit a8ddd01

Please sign in to comment.