fix(interface): populate Queued By for Python target commands #6853
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
| # Copyright 2026 OpenC3, Inc. | |
| # All Rights Reserved. | |
| # | |
| # This program is distributed in the hope that it will be useful, | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| # See LICENSE.md for more details. | |
| # This file may also be used under the terms of a commercial license | |
| # if purchased from OpenC3, Inc. | |
| name: API Tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - "**" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| RUBYOPT: --disable=frozen_string_literal | |
| RUBYGEMS_URL: https://rubygems.org | |
| BUNDLE_WITHOUT: development | |
| OPENC3_REDIS_USERNAME: openc3 | |
| OPENC3_REDIS_PASSWORD: openc3password | |
| OPENC3_REDIS_HOSTNAME: 127.0.0.1 | |
| OPENC3_REDIS_PORT: 6379 | |
| OPENC3_REDIS_EPHEMERAL_HOSTNAME: 127.0.0.1 | |
| OPENC3_REDIS_EPHEMERAL_PORT: 6380 | |
| OPENC3_SERVICE_PASSWORD: openc3service | |
| permissions: | |
| contents: read | |
| jobs: | |
| cmd-tlm-api: | |
| if: ${{ github.actor != 'dependabot[bot]' }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| ruby-version: ["3.4"] | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Harden the runner (Audit all outbound calls) | |
| uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| # Only needed for SonarQube Scan | |
| # with: | |
| # fetch-depth: 0 # all history for all branches and tags | |
| - name: Set up Ruby ${{ matrix.ruby-version }} | |
| uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0 | |
| env: | |
| OPENC3_DEVEL: ../openc3 | |
| with: | |
| ruby-version: ${{ matrix.ruby-version }} | |
| bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
| working-directory: openc3-cosmos-cmd-tlm-api | |
| - name: Build OpenC3 | |
| run: bundle install; bundle exec rake build | |
| working-directory: openc3 | |
| env: | |
| OPENC3_DEVEL: ${GITHUB_WORKSPACE}/openc3 | |
| - name: Run cmd-tlm-api tests | |
| run: bundle exec rspec | |
| working-directory: openc3-cosmos-cmd-tlm-api | |
| env: | |
| OPENC3_DEVEL: ../openc3 | |
| - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 | |
| with: | |
| directory: openc3-cosmos-cmd-tlm-api/coverage | |
| flags: ruby-api # See codecov.yml | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| # Attempt at using separate SonarQube Scan task | |
| # - name: Store coverage report | |
| # uses: actions/upload-artifact@v7 | |
| # with: | |
| # name: cmd-tlm-api-${{ matrix.ruby-version }} | |
| # path: openc3-cosmos-cmd-tlm-api/coverage/coverage.json | |
| script-runner-api-ruby: | |
| if: ${{ github.actor != 'dependabot[bot]' }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| # Note that the report-coverage job needs this value hard coded | |
| ruby-version: ["3.4"] | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Harden the runner (Audit all outbound calls) | |
| uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| # Only needed for SonarQube Scan | |
| # with: | |
| # fetch-depth: 0 | |
| - name: Set up Ruby ${{ matrix.ruby-version }} | |
| uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0 | |
| env: | |
| OPENC3_DEVEL: ../openc3 | |
| with: | |
| ruby-version: ${{ matrix.ruby-version }} | |
| bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
| working-directory: openc3-cosmos-script-runner-api | |
| - name: Build OpenC3 | |
| run: bundle install; bundle exec rake build | |
| working-directory: openc3 | |
| - name: Run script-runner-api tests | |
| run: bundle exec rspec | |
| working-directory: openc3-cosmos-script-runner-api | |
| env: | |
| OPENC3_DEVEL: ../openc3 | |
| - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 | |
| with: | |
| directory: openc3-cosmos-script-runner-api/coverage | |
| flags: ruby-api # See codecov.yml | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| # - name: Store coverage report | |
| # uses: actions/upload-artifact@v7 | |
| # with: | |
| # name: script-runner-api-ruby-${{ matrix.ruby-version }} | |
| # path: openc3-cosmos-script-runner-api/coverage/coverage.json | |
| script-runner-api-python: | |
| if: ${{ github.actor != 'dependabot[bot]' }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13"] | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Harden the runner (Audit all outbound calls) | |
| uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| # Only needed for SonarQube Scan | |
| # with: | |
| # fetch-depth: 0 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v7 | |
| with: | |
| enable-cache: true | |
| cache-suffix: ${{ matrix.python-version }} | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync --frozen | |
| working-directory: openc3/python | |
| - name: Run unit tests | |
| run: | | |
| uv run --frozen coverage run -m pytest ../../openc3-cosmos-script-runner-api/test/ | |
| uv run --frozen coverage xml -i | |
| working-directory: openc3/python | |
| - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 | |
| with: | |
| working-directory: openc3/python | |
| flags: python # See codecov.yml | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| # - name: Store coverage report | |
| # uses: actions/upload-artifact@v7 | |
| # with: | |
| # name: script-runner-api-python-${{ matrix.python-version }} | |
| # path: openc3/python/coverage.xml | |
| # This was an attempt to use SonarQube to report coverage | |
| # It is currently disabled because we reverted to Automatic Analysis | |
| # report-coverage: | |
| # needs: [cmd-tlm-api, script-runner-api-ruby, script-runner-api-python] | |
| # runs-on: ubuntu-latest | |
| # permissions: | |
| # contents: read | |
| # steps: | |
| # - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| # with: | |
| # fetch-depth: 0 | |
| # - name: Download coverage reports | |
| # uses: actions/download-artifact@v4 | |
| # - name: SonarQube Scan | |
| # uses: SonarSource/sonarqube-scan-action@v5 | |
| # with: | |
| # args: > | |
| # -Dsonar.organization=openc3 | |
| # -Dsonar.projectKey=OpenC3_cosmos | |
| # -Dsonar.python.coverage.reportPaths=script-runner-api-python-3.12/coverage.xml | |
| # -Dsonar.ruby.coverage.reportPaths=cmd-tlm-api-3.3/coverage.json,script-runner-api-ruby-3.3/coverage.json | |
| # -Dsonar.sources=openc3/lib,openc3/python,openc3-cosmos-cmd-tlm-api/app,openc3-cosmos-script-runner-api/app,openc3-cosmos-script-runner-api/scripts | |
| # -Dsonar.tests=openc3-cosmos-cmd-tlm-api/spec,openc3-cosmos-script-runner-api/spec,openc3-cosmos-script-runner-api/test | |
| # -Dsonar.test.exclusions=openc3-cosmos-cmd-tlm-api/spec/fixtures/**/* | |
| # env: | |
| # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |