Skip to content

PacketViewer virtual table #4494

PacketViewer virtual table

PacketViewer virtual table #4494

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
# Reference environment variables: https://docs.github.com/en/actions/reference/environment-variables
name: API Tests
on:
push:
branches:
- main
pull_request:
branches:
- "**"
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
jobs:
cmd-tlm-api:
if: ${{ github.actor != 'dependabot[bot]' }}
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ["3.3", "3.4"]
steps:
- uses: actions/checkout@v5
# 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@v1
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@v5
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@v4
# 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.3", "3.4"]
steps:
- uses: actions/checkout@v5
# Only needed for SonarQube Scan
# with:
# fetch-depth: 0
- name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1
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@v5
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@v4
# 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"]
steps:
- uses: actions/checkout@v5
# Only needed for SonarQube Scan
# with:
# fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
working-directory: openc3/python
- name: Lint with ruff
run: |
poetry run ruff check --output-format=github ../../openc3-cosmos-script-runner-api/scripts
working-directory: openc3/python
- name: Run unit tests
run: |
poetry run coverage run -m pytest ../../openc3-cosmos-script-runner-api/test/
poetry run coverage xml -i
working-directory: openc3/python
- uses: codecov/codecov-action@v5
with:
working-directory: openc3/python
flags: python # See codecov.yml
token: ${{ secrets.CODECOV_TOKEN }}
# - name: Store coverage report
# uses: actions/upload-artifact@v4
# 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
# steps:
# - uses: actions/checkout@v5
# 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 }}