ActivityWatch/aw-watcher-afk

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 }} (py-${{ matrix.python_version }})
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-20.04, windows-latest, macOS-11]
        python_version: [3.9]
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: 'recursive'
    - name: Set up Python
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python_version }}
    - name: Create virtualenv
      shell: bash
      run: |
        python -m venv venv
    - name: Install dependencies
      shell: bash
      run: |
        pip install poetry==1.3.2  # due to: https://github.com/python-poetry/poetry/issues/7611
        source venv/bin/activate || source venv/Scripts/activate
        poetry install
    - name: Run tests
      shell: bash
      run: |
        source venv/bin/activate || source venv/Scripts/activate
        make test
    - name: Package
      shell: bash
      run: |
        source venv/bin/activate || source venv/Scripts/activate
        make package
    - name: Test package
      shell: bash
      run: |
          dist/aw-watcher-afk/aw-watcher-afk --help
    - name: Upload package
      uses: actions/upload-artifact@v2
      with:
        name: aw-watcher-afk-${{ runner.os }}-py${{ matrix.python_version }}
        path: dist/aw-watcher-afk