Skip to content

feat: improve task polling #660

feat: improve task polling

feat: improve task polling #660

Workflow file for this run

name: CI
on:
- pull_request
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
- run: uv python install
- run: make dev
- run: make lint
- run: make fmt
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
- run: uv python install ${{ matrix.python-version }}
- run: make dev
- run: make test
setup-integration-test:
runs-on: ubuntu-latest
outputs:
versions: ${{ steps.versions.outputs.versions }}
steps:
- uses: actions/checkout@v4
- id: versions
working-directory: ./integration
# The `jq` command is "output compact, raw input, slurp, split on new lines, and remove the last element". This results in a JSON array of Connect versions (e.g., ["2025.01.0", "2024.12.0"]).
run: |
versions=$(make print-versions | jq -c -Rs 'split("\n") | .[:-1]')
echo "versions=$versions" >> "$GITHUB_OUTPUT"
integration-test:
runs-on: ubuntu-latest
needs: setup-integration-test
strategy:
fail-fast: false
matrix:
CONNECT_VERSION: ${{ fromJson(needs.setup-integration-test.outputs.versions) }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Write Posit Connect license to disk
run: echo "$CONNECT_LICENSE" > ./integration/license.lic
env:
CONNECT_LICENSE: ${{ secrets.CONNECT_LICENSE }}
- uses: astral-sh/setup-uv@v6
- run: uv python install
- run: make -C ./integration ${{ matrix.CONNECT_VERSION }}
- uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ matrix.CONNECT_VERSION }} - Integration Test Report
path: integration/reports/*.xml
integration-test-report:
needs: integration-test
runs-on: ubuntu-latest
permissions:
checks: write
pull-requests: write
if: always()
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
- uses: EnricoMi/publish-unit-test-result-action@v2
with:
check_name: integration-test-results
comment_mode: off
files: "artifacts/**/*.xml"
report_individual_runs: true
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
- run: uv python install
- run: make dev
- run: make build