Skip to content

Power and Thermal Specification for RPE - Front end (updated) #1328

Power and Thermal Specification for RPE - Front end (updated)

Power and Thermal Specification for RPE - Front end (updated) #1328

Workflow file for this run

name: Build and Publish RPE
on:
push:
tags:
- '*'
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-22.04 # This is CentOS 7 under the hood
- macos-latest
- windows-latest
runs-on: ${{ matrix.os }}
env:
MODE: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Bring in device.xml
uses: actions/checkout@v4
with:
repository: os-fpga/Raptor
path: Raptor
sparse-checkout: 'etc'
- name: Setup Node.js ${{ matrix.os }}
if: ${{ matrix.os != 'ubuntu-22.04' }}
uses: actions/setup-node@v4
with:
node-version: 20.11 # if update this then also update in Dockerfile for centos
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8 # if update this then also update in Dockerfile for centos
- name: Login to the Container registry
if: ${{ matrix.os == 'ubuntu-22.04' }}
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull the CentOS image
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: docker pull ghcr.io/${{ github.repository_owner }}/rapid_power_estimator:centos7latest
- name: Shell configuration on ${{ matrix.os }}
if: ${{ matrix.os != 'ubuntu-22.04' }}
run: |
node --version
python3 -V
- name: Shell configuration on CentOS 7
if: ${{ matrix.os == 'ubuntu-22.04' }}
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/rapid_power_estimator:centos7latest
run: |
source /opt/rh/devtoolset-11/enable
cmake --version
node --version
python3 -V
- name: Install Dep. packages Linux latest & windows & MacOS
if: ${{ matrix.os != 'ubuntu-22.04' }}
run: |
npm install
python3 -m pip install -r requirements.txt
npx playwright install --with-deps
- name: Unit Pytest Linux latest & windows & MacOS
if: ${{ matrix.os != 'ubuntu-22.04' }}
run: python3 -m pytest
- name: Unit Jtest Linux latest & windows & MacOS
if: ${{ matrix.os != 'ubuntu-22.04' }}
run: npm test
- name: E2E Playwright tests on Linux latest
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
cp -rvf Raptor/etc backend
ls -l backend/etc/device.xml
npm run compile && xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npx playwright test
- name: cat RPE log
if: matrix.os == 'ubuntu-latest' && always()
run: find $HOME -type f -name "rpe.log" -exec cat {} +
- name: Run ESLint only on ubuntu-latest
if: ${{ matrix.os == 'ubuntu-latest' }}
run: npx eslint src/
- name: Install packages CentOS 7 & Run pytest & frontend test
if: ${{ matrix.os == 'ubuntu-22.04' }}
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/rapid_power_estimator:centos7latest
options: -v ${{ github.workspace }}:/work
run: |
cd /work
npm install
python3 -m pip install -r requirements.txt
python3 -m pytest
npm test
publish:
needs: test
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04 # This is CentOS 7 under the hood
- macos-latest
- windows-latest
runs-on: ${{ matrix.os }}
permissions:
contents: write
packages: read
env:
MODE: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.os }}
if: ${{ matrix.os != 'ubuntu-22.04' }}
uses: actions/setup-node@v4
with:
node-version: 20.11 # if update this then also update in Dockerfile for centos
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.8 # if update this then also update in Dockerfile for centos
- name: Login to the Container registry
if: ${{ matrix.os == 'ubuntu-22.04' }}
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull the CentOS image
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: docker pull ghcr.io/${{ github.repository_owner }}/rapid_power_estimator:centos7latest
- name: Shell configuration on ${{ matrix.os }}
if: ${{ matrix.os != 'ubuntu-22.04' }}
run: |
node --version
python3 -V
- name: Shell configuration on CentOS 7
if: ${{ matrix.os == 'ubuntu-22.04' }}
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/rapid_power_estimator:centos7latest
run: |
source /opt/rh/devtoolset-11/enable
cmake --version
node --version
python3 -V
- name: Install packages ${{ matrix.os }}
if: ${{ matrix.os != 'ubuntu-22.04' }}
run: |
npm install
python3 -m pip install -r requirements.txt
- name: Create Package on ${{ matrix.os }}
if: ${{ matrix.os == 'macos-12' || matrix.os == 'windows-latest' }}
run: |
npm run dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create Package on Linux
if: ${{ matrix.os == 'ubuntu-22.04' }}
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/rapid_power_estimator:centos7latest
options: -v ${{ github.workspace }}:/work
run: |
cd /work
npm install
python3 -m pip install -r requirements.txt
npm run dist
ls dist
tar -czvf rapid_power_estimator_linux.tar.gz -C dist/linux-unpacked .
mv rapid_power_estimator_linux.tar.gz dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run on refs/tags only
run: |
echo ${{ github.ref }}
- name: Upload Package
if: ${{ github.ref == 'refs/heads/main' && matrix.os != 'windows-latest' }}
uses: actions/[email protected]
with:
name: rapid_power_estimator_${{ matrix.os }}
path: dist/rapid_power_estimator*.tar.gz
- name: Upload Package
if: ${{ github.ref == 'refs/heads/main' && matrix.os == 'windows-latest' }}
uses: actions/[email protected]
with:
name: rapid_power_estimator_${{ matrix.os }}
path: dist/rapid_power_estimator*.exe
- name: Upload Release
if: ${{ matrix.os != 'windows-latest' && contains(github.ref, 'refs/tags/') }}
uses: softprops/action-gh-release@v1
with:
files: dist/rapid_power_estimator*.tar.gz
- name: Upload Release
if: ${{ matrix.os == 'windows-latest' && contains(github.ref, 'refs/tags/') }}
uses: softprops/action-gh-release@v1
with:
files: dist/rapid_power_estimator*.exe
coverage:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
- name: Set up virtual environment
run: |
python3 -m venv venv
source venv/bin/activate
- name: Install dependencies in virtual environment
run: |
source venv/bin/activate
pip install -r requirements.txt
npm install
- name: Run pytest with Codecov
run: |
source venv/bin/activate
python3 -m pytest --cov=. --cov-report=term-missing --cov-report=xml
- name: Upload results to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: os-fpga/rapid_power_estimator
- name: Run npm test with Codecov
run: npm test
- name: Upload results to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: os-fpga/rapid_power_estimator
files: ./coverage.xml,./coverage/lcov.info