Setting up CI for a Synapse Project using GitHub Actions
Example Actions File
name: Synapse Project CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the main branch.
on:
push:
branches:
- main
paths:
- "synapse_opi/**"
pull_request:
paths:
- "synapse_opi/**"
env:
PYTHON_VERSION: "3.10.7"
PROJECT_DIR: "synapse_opi"
jobs:
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Synapse Runtime
run: |
pip install synapsefrc
- name: Compile all Python files
run: python -m compileall -q $PROJECT_DIR
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Ruff and isort
run: pip install ruff isort
- name: Run Ruff linting
run: ruff check $PROJECT_DIR
- name: Run isort check
run: isort --check-only --diff $PROJECT_DIR
type-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Synapse Runtime
run: |
pip install synapsefrc
- name: Install Pyright
run: pip install pyright
- name: Run Pyright type checks
run: pyright $PROJECT_DIRLast updated