ActivityWatch/aw-server

View on GitHub
.github/workflows/build.yml

Summary

Maintainability
Test Coverage
name: Build

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    name: Test on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    env:
      RELEASE: false
      SKIP_WEBUI: true
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macOS-latest]
        python_version: [3.9]
    steps:
    - uses: actions/checkout@v3
      with:
        submodules: 'recursive'
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: ${{ matrix.python_version }}
    - name: Install dependencies
      shell: bash
      run: |
        pip install poetry==1.3.2  # due to: https://github.com/python-poetry/poetry/issues/7611
        python -m venv venv
        source venv/bin/activate || source venv/Scripts/activate
        make build
    - name: Run tests
      shell: bash
      run: |
        source venv/bin/activate || source venv/Scripts/activate
        make test
    - name: Report coverage
      shell: bash
      run: |
        # allow failures since codecov servers can be grumpy
        bash <(curl -s https://codecov.io/bash) || true
    - name: Package
      shell: bash
      run: |
        source venv/bin/activate || source venv/Scripts/activate
        pip install pyinstaller
        make package

  typecheck:
    runs-on: ${{ matrix.os }}
    env:
      RELEASE: false
      SKIP_WEBUI: true
    strategy:
      matrix:
        os: [ubuntu-latest]
        python_version: [3.9]
    steps:
    - uses: actions/checkout@v3
      with:
        submodules: 'recursive'
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: ${{ matrix.python_version }}
    - name: Install dependencies
      shell: bash
      run: |
        pip install poetry
        python -m venv venv
        source venv/bin/activate || source venv/Scripts/activate
        make build
    - name: Typecheck
      shell: bash
      run: |
        source venv/bin/activate || source venv/Scripts/activate
        make typecheck