Add new message definitions for streaming events #41
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test PR | |
| on: | |
| pull_request: | |
| env: | |
| # Please make sure this version is included in the `matrix`, as the | |
| # `matrix` section can't use `env`, so it must be entered manually | |
| DEFAULT_PYTHON_VERSION: '3.11' | |
| # It would be nice to be able to also define a DEFAULT_UBUNTU_VERSION | |
| # but sadly `env` can't be used either in `runs-on`. | |
| jobs: | |
| validate-structure: | |
| name: Validate Python Package Structure | |
| runs-on: ubuntu-latest # Using latest as specific version isn't critical here | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check for __init__.py files | |
| run: | | |
| echo "Checking if Python package structure mirrors Protobuf structure..." | |
| PROTO_BASE="proto/frequenz/api/common" | |
| PYTHON_BASE="py/frequenz/api/common" | |
| MISSING_INIT=false | |
| # Find all directories under the proto base path | |
| find "$PROTO_BASE" -type d | while read -r proto_dir; do | |
| # Construct the corresponding python path | |
| relative_path="${proto_dir#$PROTO_BASE/}" | |
| # Handle the base directory case | |
| if [ "$proto_dir" == "$PROTO_BASE" ]; then | |
| relative_path="" | |
| fi | |
| python_dir="$PYTHON_BASE/$relative_path" | |
| # Check if the corresponding python directory exists | |
| if [ -d "$python_dir" ]; then | |
| # Check if __init__.py exists in the python directory | |
| if [ ! -f "$python_dir/__init__.py" ]; then | |
| echo "Error: Missing __init__.py in $python_dir (corresponding to $proto_dir)" | |
| MISSING_INIT=true | |
| fi | |
| # Optional: Uncomment below if you want to enforce that *every* proto dir must have a python dir | |
| # else | |
| # echo "Warning: Python directory $python_dir not found for proto directory $proto_dir" | |
| fi | |
| done | |
| if [ "$MISSING_INIT" = true ]; then | |
| echo "Validation failed: Found missing __init__.py files." | |
| exit 1 | |
| else | |
| echo "Validation successful: All corresponding Python directories have __init__.py." | |
| fi | |
| protolint: | |
| name: Check proto files with protolint | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Setup Git | |
| uses: frequenz-floss/[email protected] | |
| - name: Fetch sources | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Run protolint | |
| # Only use hashes here, as we are passing the github token, we want to | |
| # make sure updates are done consciously to avoid security issues if the | |
| # action repo gets hacked | |
| uses: yoheimuta/action-protolint@e62319541dc5107df5e3a5010acb8987004d3d25 # v1.3.0 | |
| with: | |
| fail_on_error: true | |
| filter_mode: nofilter | |
| github_token: ${{ secrets.github_token }} | |
| protolint_flags: proto/ | |
| protolint_version: "0.52.0" | |
| reporter: github-check | |
| nox: | |
| name: Test with nox | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Run nox | |
| uses: frequenz-floss/[email protected] | |
| with: | |
| python-version: "3.11" | |
| nox-session: ci_checks_max | |
| test-docs: | |
| name: Test documentation website generation | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Setup Git | |
| uses: frequenz-floss/[email protected] | |
| - name: Fetch sources | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Setup Python | |
| uses: frequenz-floss/[email protected] | |
| with: | |
| python-version: ${{ env.DEFAULT_PYTHON_VERSION }} | |
| dependencies: .[dev-mkdocs] | |
| - name: Generate the documentation | |
| env: | |
| MIKE_VERSION: gh-${{ github.job }} | |
| run: | | |
| mike deploy $MIKE_VERSION | |
| mike set-default $MIKE_VERSION | |
| - name: Upload site | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: docs-site | |
| path: site/ | |
| if-no-files-found: error |