diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 1d5bee9..86286a5 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -2,50 +2,82 @@ name: CI on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - + - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - - - name: Cache Poetry installation + + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true + + - name: Cache Poetry dependencies uses: actions/cache@v4 with: - path: | - ~/.local - ~/.cache/pypoetry - key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} + path: ~/.cache/pypoetry + key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }} restore-keys: | - poetry-${{ runner.os }}- - - - name: Install Poetry - run: | - curl -sSL https://install.python-poetry.org | python3 - - echo "$HOME/.local/bin" >> $GITHUB_PATH - + ${{ runner.os }}-poetry- + - name: Install dependencies run: | - poetry install - + poetry install --with dev + - name: Run tests run: | - poetry run pytest tests/ -v --tb=short - + poetry run pytest tests/ -v + - name: Run linting run: | - poetry run ruff check codechunk/ tests/ - + poetry run ruff check codechunk tests + - name: Run type checking run: | - poetry run mypy codechunk/ tests/ + poetry run mypy codechunk -# End of CI workflow + build: + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true + + - name: Cache Poetry dependencies + uses: actions/cache@v4 + with: + path: ~/.cache/pypoetry + key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }} + restore-keys: | + ${{ runner.os }}-poetry- + + - name: Build package + run: | + poetry build + + - name: Verify build + run: | + poetry run pip install dist/*.whl --dry-run