diff --git a/.github/workflows/github-action.yml b/.github/workflows/pr.yml similarity index 95% rename from .github/workflows/github-action.yml rename to .github/workflows/pr.yml index e9652d0..a5cde45 100644 --- a/.github/workflows/github-action.yml +++ b/.github/workflows/pr.yml @@ -6,12 +6,10 @@ on: push: branches: - "v3-dev" - tags: - - "v3.*.*" jobs: - ci: - name: continuous-integration + build-and-test: + name: build-and-test runs-on: ubuntu-latest strategy: matrix: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b139804..fb533d8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,14 +1,64 @@ name: "Publish Python Package" on: - workflow_run: - workflows: [Specklepy test and build] - types: - - completed + push: + branches: + - "v3-dev" + tags: + - "v3.*.*" jobs: + build-and-test: + name: continuous-integration + runs-on: ubuntu-latest + strategy: + matrix: + python-version: + - "3.10" + - "3.11" + - "3.12" + - "3.13" + + steps: + - uses: actions/checkout@v4 + + - name: Install uv and set the python version + uses: astral-sh/setup-uv@v5 + with: + python-version: ${{ matrix.python-version }} + enable-cache: true + cache-dependency-glob: "uv.lock" + + - name: Install the project + run: uv sync --all-extras --dev + + - uses: actions/cache@v3 + with: + path: ~/.cache/pre-commit/ + key: ${{ hashFiles('.pre-commit-config.yaml') }} + + - name: Run pre-commit + run: uv run pre-commit run --all-files + + - name: Run Speckle Server + run: docker compose up -d + + # - name: Run tests + # run: uv run pytest --cov --cov-report xml:reports/coverage.xml --junitxml=reports/test-results.xml + + # - uses: codecov/codecov-action@v5 + # if: matrix.python-version == 3.13 + # with: + # fail_ci_if_error: true # optional (default = false) + # files: ./reports/test-results.xml # optional + # token: ${{ secrets.CODECOV_TOKEN }} + + - name: Minimize uv cache + run: uv cache prune --ci + publish-package: name: "Build and Publish Python Package" runs-on: ubuntu-latest + needs: build-and-test # set the environment based on what triggered the workflow environment: