Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Continuous Integration

on:
push:
branches: [main, ci]
pull_request:
branches: [main]

permissions:
contents: read

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
cpp:
name: C++ build and unit tests
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Configure CMake
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build build --parallel
- name: Run unit tests
run: ctest --test-dir build --output-on-failure -C Release

web:
name: Web API tests and client build
runs-on: ubuntu-24.04
strategy:
fail-fast: true
matrix:
include:
- name: API
directory: web
command: npm test
- name: Client
directory: client
command: npm run build
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
working-directory: ${{ matrix.directory }}
run: npm install --no-audit --no-fund
- name: Run ${{ matrix.name }} validation
working-directory: ${{ matrix.directory }}
run: ${{ matrix.command }}

mobile:
name: Mobile dependency validation
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Expo dependencies
working-directory: mobile
run: npm install --no-audit --no-fund
38 changes: 38 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Release artifacts

on:
push:
tags: ['v*.*.*']
workflow_dispatch:

permissions:
contents: read

jobs:
package:
name: Build and upload release artifacts
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install and build web client
working-directory: client
run: npm install --no-audit --no-fund && npm run build
- name: Configure and build C++ service
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build --parallel
- name: Package release bundle
shell: bash
run: |
mkdir -p release/web release/bin
cp -r client/dist release/web/
cp build/src/wolt_app release/bin/
tar -czf advancedwolt-${GITHUB_REF_NAME}.tar.gz -C release .
- name: Upload release bundle
uses: actions/upload-artifact@v4
with:
name: advancedwolt-${{ github.ref_name }}
path: advancedwolt-${{ github.ref_name }}.tar.gz
Loading
Loading