Skip to content

Bump the go-dependencies group across 1 directory with 2 updates #106

Bump the go-dependencies group across 1 directory with 2 updates

Bump the go-dependencies group across 1 directory with 2 updates #106

Workflow file for this run

name: CI
on:
push:
branches: [main]
paths-ignore:
- 'site/**'
pull_request:
branches: [main]
paths-ignore:
- 'site/**'
jobs:
backend:
name: Backend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: 'go.mod'
cache: true
- name: Install dependencies
run: go mod download
- name: Create frontend stub for embed
run: mkdir -p web/dist && touch web/dist/.gitkeep
- name: Lint
uses: golangci/golangci-lint-action@v7
with:
version: v2.10
# Build internal packages and cmd/server (excludes Wails app which needs web/dist)
- name: Build
run: |
go build -v ./internal/...
go build -v ./cmd/...
# Test internal packages
- name: Test
run: go test -v -race -coverprofile=coverage.out ./internal/...
- name: Upload coverage
uses: codecov/codecov-action@v5
if: github.event_name == 'push'
with:
files: coverage.out
fail_ci_if_error: false
frontend:
name: Frontend
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web/package-lock.json
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Type check
run: npx tsc --noEmit
- name: Build
run: npm run build
build-desktop:
name: Build Desktop App
needs: [backend, frontend]
if: github.event_name == 'push' || github.event_name == 'pull_request'
strategy:
matrix:
include:
- os: macos-latest
platform: darwin/universal
wails_flags: ""
- os: windows-latest
platform: windows/amd64
wails_flags: ""
- os: ubuntu-latest
platform: linux/amd64
wails_flags: "-tags webkit2_41"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: 'go.mod'
cache: true
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web/package-lock.json
- name: Install Wails
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev
- name: Build frontend
working-directory: web
run: |
npm ci
npm run build
- name: Build Wails app
run: wails build -platform ${{ matrix.platform }} ${{ matrix.wails_flags }}
- name: Upload artifact (macOS)
if: matrix.os == 'macos-latest'
uses: actions/upload-artifact@v7
with:
name: Daedalus-macos
path: build/bin/*.app
retention-days: 7
- name: Upload artifact (Windows)
if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v7
with:
name: Daedalus-windows
path: build/bin/*.exe
retention-days: 7
- name: Upload artifact (Linux)
if: runner.os == 'Linux'
uses: actions/upload-artifact@v7
with:
name: Daedalus-linux
path: build/bin/Daedalus
retention-days: 7