From d6b50a3cf4896099e80e6ffdd5a89c530dacf15c Mon Sep 17 00:00:00 2001 From: Yeoh Joer Date: Thu, 10 Oct 2024 01:29:36 +0800 Subject: [PATCH] ci: create a workflow to check formatting, lint, and run tests --- .github/workflows/ci.yml | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f66d119 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,68 @@ +name: Continuous Integration + +on: + pull_request: + branches: + - master + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + format: + name: Format + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Setup Ruff + run: | + python -m pip install --upgrade pip + pip install ruff + - name: Check Formatting + run: ruff format --check . + - name: Check Import Ordering + run: ruff check --select I . + + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Setup Ruff + run: | + python -m pip install --upgrade pip + pip install ruff + - name: Lint + run: ruff check . + + test: + name: Test + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Setup Rust + run: rustup install 1.81.0 + - name: Setup Rye + uses: eifinger/setup-rye@v4 + - name: Setup Environment Variables + run: cp .env.example .env + - name: Install Dependencies + run: rye --env-file .env sync --features torch,vision + - name: Test + run: rye run pytest