Files
server/.github/workflows/ci.yml

117 lines
2.9 KiB
YAML

name: CI
on:
pull_request:
paths-ignore:
- '**/*.md'
- 'README*'
- 'LICENSE*'
push:
branches:
- master
paths-ignore:
- '**/*.md'
- 'README*'
- 'LICENSE*'
jobs:
build:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: false
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
cache: maven
- name: Build and test
run: mvn -B verify
electron-build:
timeout-minutes: 10
name: Electron packages (${{ matrix.os }})
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
build-command: npx electron-builder --linux AppImage --publish never
artifact-name: electron-linux
- os: windows-latest
build-command: npx electron-builder --win nsis --publish never
artifact-name: electron-windows
- os: macos-latest
build-command: npx electron-builder --mac --publish never
artifact-name: electron-macos
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: npm
cache-dependency-path: package-lock.json
- name: Install dependencies
run: npm ci
- name: Build Electron bundles
run: ${{ matrix.build-command }}
- name: Smoke test AppImage
if: matrix.os == 'ubuntu-latest'
run: |
chmod +x dist/*.AppImage
./dist/*.AppImage --appimage-extract
sudo apt-get update
sudo apt-get install -y xvfb
cd squashfs-root
APPDIR="$(pwd)" xvfb-run ./AppRun --no-sandbox
- name: Upload Electron artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact-name }}
path: |
dist/*.AppImage
dist/*.exe
dist/*.dmg
docker:
timeout-minutes: 10
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
with:
lfs: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
uses: docker/login-action@v3
with:
username: kruhlmann
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
tags: |
kruhlmann/imgfloat-j:latest
kruhlmann/imgfloat-j:${{ github.sha }}