flamingo-run/sanic-rest

View on GitHub
.github/workflows/main.yaml

Summary

Maintainability
Test Coverage
name: Github CI

on:
  pull_request:
    branches:
      - '**'
  push:
    branches:
      - main

jobs:
  linter:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
      with:
        ref: staging
    - name: Install poetry
      run: pipx install poetry
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: '3.12.x'
        cache: poetry
    - name: Install Python dependencies
      run: |
        make dependencies
    - name: Lint with pylint
      run: |
        make lint

  setup:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: staging
      - name: Install poetry
        run: pipx install poetry
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.12.x'
          cache: poetry
      - name: Install Python dependencies
        run: |
          make dependencies
      - name: Install as a package
        run: |
          poetry build

  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: staging
      - name: Install poetry
        run: pipx install poetry
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.12.x'
          cache: poetry
      - name: Install Python dependencies
        run: |
          make dependencies
      - name: Verify security vulnerabilities
        run: |
          make check

  unit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: staging
      - name: Install poetry
        run: pipx install poetry
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.12.x'
          cache: poetry
      - name: Install Python dependencies
        run: |
          make dependencies

      - name: Unit test
        run: |
          make unit
        env:
          LOG_LEVEL: ERROR

      - name: Report Coverage
        run: |
          pip3 install --upgrade coveralls coverage[toml]
          coveralls --service=github
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}