Skip to content

feat: optimize github action workflows #1

feat: optimize github action workflows

feat: optimize github action workflows #1

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
lint-app:
name: Lint (biomejs)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
- run: pnpm install
- run: pnpm lint:check
run-unit-tests:
name: Run Tests
runs-on: macos-latest
needs: lint-app
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
- run: pnpm install
- run: pnpm tsc --noEmit
- run: pnpm test -- --coverage --runInBand --verbose
- name: Coveralls
uses: coverallsapp/github-action@v2
build-macos:
name: Build macOS (electron-builder)
runs-on: macos-latest
needs: run-unit-tests
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
- run: pnpm install
- run: pnpm build
- run: pnpm prepare:remove-source-maps
- run: pnpm package:macos --publish=never -c.mac.identity=null
env:
CSC_LINK: ${{ secrets.mac_certs }}
CSC_KEY_PASSWORD: ${{ secrets.mac_certs_password }}
- name: Clean up builds
run: rm -rfv dist/mac-universal
- uses: actions/upload-artifact@v4
with:
name: Gitify-dist-mac
path: dist/
overwrite: true
build-windows:
name: Build Windows (electron-builder)
runs-on: windows-latest
needs: run-unit-tests
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
- run: pnpm install
- run: pnpm build
- run: pnpm prepare:remove-source-maps
- run: pnpm package:win --publish=never
- name: Clean up builds
run: Remove-Item dist/win-unpacked -Recurse
- uses: actions/upload-artifact@v4
with:
name: Gitify-dist-win
path: dist
overwrite: true
build-linux:
name: Build Linux (electron-builder)
runs-on: ubuntu-latest
needs: run-unit-tests
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'pnpm'
- run: pnpm install
- run: pnpm build
- run: pnpm prepare:remove-source-maps
- run: pnpm package:linux --publish=never
- name: Clean up builds
run: rm -rfv dist/linux-unpacked
- uses: actions/upload-artifact@v4
with:
name: Gitify-dist-linux
path: dist
overwrite: true