Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .copier-answers.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Changes here will be overwritten by Copier
_commit: '4875149'
_commit: b2cdb6d
_src_path: https://github.com/python-project-templates/base.git
add_docs: false
add_extension: js
Expand Down
299 changes: 170 additions & 129 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,101 +36,139 @@ jobs:
node-version: [22.x]

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

- name: Set up Python
uses: actions-ext/python/setup@main
with:
version: 3.11

- name: Set up NodeJS
uses: actions-ext/node/setup@main
with:
version: ${{ matrix.node-version }}

- name: Install dependencies
run: make develop

- name: Lint
run: make lint

- name: Checks
run: make checks

- name: Build
run: make build

- name: Make dist
run: make dist

- uses: actions-ext/python/test-wheel@main
with:
module: csp_gateway

- uses: actions-ext/python/test-sdist@main
with:
module: csp_gateway

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: dist
path: dist
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Python
uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
version: ${{ matrix.python-version }}

- name: Setup Node.js
uses: actions-ext/node/setup@0ea5bdcd24d2488b28e16bf611b446a2f8e1e12f
with:
version: ${{ matrix.node-version }}

- name: Install dependencies
run: make develop

- name: Lint
run: make lint
if: matrix.os == 'ubuntu-latest'

- name: Checks
run: make checks
if: matrix.os == 'ubuntu-latest'

- name: Build
run: make build

- name: Test
run: make coverage
if: matrix.os == 'ubuntu-latest'

- name: Upload test results
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.node-version }}
path: '**/junit.xml'
if: ${{ always() }}

- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
with:
files: '**/junit.xml'
if: matrix.os == 'ubuntu-latest'

- name: Upload coverage
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}

- name: Build distributions
run: make dist
if: matrix.os == 'ubuntu-latest'

- name: Test wheel
uses: actions-ext/python/test-wheel@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
module: csp_gateway
if: matrix.os == 'ubuntu-latest'

- name: Test source distribution
uses: actions-ext/python/test-sdist@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
module: csp_gateway
if: matrix.os == 'ubuntu-latest'

- name: Upload distributions
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: dist
path: dist
if: matrix.os == 'ubuntu-latest'

test:
runs-on: ${{ matrix.os }}
needs: build
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.9", "3.10", "3.11"]
python-version: ["3.10", "3.11"]
exclude:
# No CSP builds for python 3.9 / macos arm64
- python-version: "3.9"
- python-version: "3.10"
os: macos-latest

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

- name: Set up Python
uses: actions-ext/python/setup@main
with:
version: 3.11

- name: Set up NodeJS
uses: actions-ext/node/setup@main

- name: Install JS dependencies
run: make develop-js

- name: Download wheels
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: dist

- name: Install wheels
run: uv pip install `ls csp_gateway-*.whl`[develop] --target .

- name: Test
run: make coverage

- name: Upload test results (Python)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
path: '**/junit.xml'
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'

- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
with:
files: '**/junit.xml'
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'

- name: Upload coverage
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Python
uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
version: ${{ matrix.python-version }}

- name: Setup Node.js
uses: actions-ext/node/setup@0ea5bdcd24d2488b28e16bf611b446a2f8e1e12f
with:
version: 22.x

- name: Install JS dependencies
run: make develop-js

- name: Download wheels
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: dist

- name: Install wheels
run: uv pip install `ls csp_gateway-*.whl`[develop] --target .

- name: Test
run: make coverage

- name: Upload test results (Python)
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
path: '**/junit.xml'
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'

- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
with:
files: '**/junit.xml'
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'

- name: Upload coverage
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'

import:
runs-on: ubuntu-latest
Expand All @@ -140,48 +178,51 @@ jobs:
wheel: ["", "client"]

steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

- name: Set up Python
uses: actions-ext/python/setup@main
with:
version: 3.11

- name: Download wheels
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: dist

- name: Install wheels
run: uv pip install `ls csp_gateway_${{ matrix.wheel }}-*.whl`
if: matrix.wheel != ''

- name: Install wheels
run: uv pip install `ls csp_gateway-*.whl`
if: matrix.wheel == ''

- name: Import Client
run: python -c "import csp_gateway.client"

- name: Import Utils
run: |
python -c "import csp_gateway.utils"
python -c "import csp_gateway.utils.enums"
python -c "import csp_gateway.utils.exceptions"
python -c "import csp_gateway.utils.picklable_queue"
python -c "import csp_gateway.utils.web.filter"
python -c "import csp_gateway.utils.web.query"

- name: Import Server
run: python -c "import csp_gateway.server"
if: matrix.wheel != 'client'

- name: Import Utils
run: |
python -c "import csp_gateway.utils"
python -c "import csp_gateway.utils.csp"
python -c "import csp_gateway.utils.fastapi"
python -c "import csp_gateway.utils.id_generator"
python -c "import csp_gateway.utils.struct"
python -c "import csp_gateway.utils.web.controls"
if: matrix.wheel != 'client'
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Python
uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
version: 3.11

- name: Download wheels
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: dist

- name: Install wheels
run: uv pip install `ls csp_gateway_${{ matrix.wheel }}-*.whl`
if: matrix.wheel != ''

- name: Install wheels
run: uv pip install `ls csp_gateway-*.whl`
if: matrix.wheel == ''

- name: Import Client
run: python -c "import csp_gateway.client"

- name: Import Utils
run: |
python -c "import csp_gateway.utils"
python -c "import csp_gateway.utils.enums"
python -c "import csp_gateway.utils.exceptions"
python -c "import csp_gateway.utils.picklable_queue"
python -c "import csp_gateway.utils.web.filter"
python -c "import csp_gateway.utils.web.query"

- name: Import Server
run: python -c "import csp_gateway.server"
if: matrix.wheel != 'client'

- name: Import Utils
run: |
python -c "import csp_gateway.utils"
python -c "import csp_gateway.utils.csp"
python -c "import csp_gateway.utils.fastapi"
python -c "import csp_gateway.utils.id_generator"
python -c "import csp_gateway.utils.struct"
python -c "import csp_gateway.utils.web.controls"
if: matrix.wheel != 'client'
7 changes: 4 additions & 3 deletions .github/workflows/copier.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions-ext/copier-update@main
with:
token: ${{ secrets.WORKFLOW_TOKEN }}
- name: Update from Copier
uses: actions-ext/copier/update@2061209faa6b75ffd4fcecc0b0983772767997f4
with:
token: ${{ secrets.WORKFLOW_TOKEN }}
26 changes: 20 additions & 6 deletions .github/workflows/wiki.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,25 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- run: cp README.md docs/wiki/Home.md
- uses: actions-ext/python/setup@main
- run: pip install nbconvert
- run: jupyter nbconvert examples/Client.ipynb --to markdown --output ../docs/wiki/Client.md
- uses: Andrew-Chen-Wang/github-wiki-action@1bbb4280446f9630e8e21a18012cbacf3b0f992e # v5.0.6
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Prepare wiki
run: cp README.md docs/wiki/Home.md

- name: Setup Python
uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446
with:
version: 3.11

- name: Install nbconvert and convert notebooks
run: |
pip install nbconvert
jupyter nbconvert examples/Client.ipynb --to markdown --output ../docs/wiki/Client.md

- name: Publish wiki
uses: Andrew-Chen-Wang/github-wiki-action@1bbb4280446f9630e8e21a18012cbacf3b0f992e # v5.0.6
with:
path: docs/wiki