mirror of
https://github.com/garraflavatra/rolens.git
synced 2024-11-22 10:25:48 +01:00
101 lines
2.4 KiB
YAML
101 lines
2.4 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
|
|
jobs:
|
|
build:
|
|
name: Build Rolens
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
platform:
|
|
- windows-2019
|
|
- windows-2022
|
|
- macos-11
|
|
- macos-12
|
|
- macos-13
|
|
- ubuntu-20.04
|
|
- ubuntu-22.04
|
|
go-version: [ 1.21 ]
|
|
node-version: [ 18 ]
|
|
|
|
runs-on: ${{ matrix.platform }}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ${{ matrix.go-version }}
|
|
cache-dependency-path: go.sum
|
|
|
|
- name: Install Wails
|
|
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest
|
|
|
|
- name: Install build dependencies for macOS
|
|
if: contains(matrix.platform, 'macos')
|
|
run: npm install --global appdmg
|
|
|
|
- name: Install build dependencies for Linux
|
|
if: contains(matrix.platform, 'ubuntu')
|
|
run: sudo apt-get install gtk+-3.0 webkit2gtk-4.0
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: npm
|
|
cache-dependency-path: frontend/package-lock.json
|
|
|
|
- name: Cross-compile Rolens for Windows
|
|
if: contains(matrix.platform, 'windows')
|
|
run: ./build/windows/ci_generate.ps1 -platform "${{ matrix.platform }}"
|
|
|
|
- name: Cross-compile Rolens for Darwin
|
|
if: contains(matrix.platform, 'macos')
|
|
run: ./build/darwin/ci_generate.sh "${{ matrix.platform }}"
|
|
|
|
- name: Cross-compile Rolens for Linux
|
|
if: contains(matrix.platform, 'ubuntu')
|
|
run: ./build/linux/ci_generate.sh "${{ matrix.platform }}"
|
|
|
|
- name: Upload generated binaries
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: rolens-${{ matrix.platform }}
|
|
path: releases/*
|
|
|
|
- name: Test build script for users
|
|
run: node ./build.js
|
|
|
|
bundle:
|
|
name: Bundle artifacts
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
if: ${{ always() }}
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Download artifacts
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
path: artifacts
|
|
|
|
- name: Place all tarballs in the same directory
|
|
run: build/ci_bundle.sh
|
|
|
|
- name: Upload the bundle as an artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: rolens-bundle
|
|
path: bundle
|