Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature - Added Integration Test Automation #4019

Merged
merged 12 commits into from
Jan 19, 2023
51 changes: 51 additions & 0 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Integration Tests

on:
push:
branches:
- release/*
pull_request:
branches:
- develop
- main
luqmanbello marked this conversation as resolved.
Show resolved Hide resolved

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
integration-tests:
runs-on: ubuntu-latest
if: github.event_name == 'push' || github.event.pull_request.merged == true
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Python 3.9
uses: actions/setup-python@v4
with:
python-version: "3.9"
architecture: x64

- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: 1.1.13
virtualenvs-create: true
virtualenvs-in-project: true

- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v3
with:
path: .venv
key: venv-${{ runner.os }}-v1-${{ hashFiles('**/poetry.lock') }}

- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction -E optimization

- name: Run integration tests
run: |
source $VENV
python terminal.py /home/runner/work/OpenBBTerminal_fork/OpenBBTerminal_fork/openbb_terminal/miscellaneous/integration_tests_scripts -t
7 changes: 7 additions & 0 deletions .github/workflows/intel_macos_build.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
name: Intel MacOS Build

env:
OPENBB_ENABLE_QUICK_EXIT: true
OPENBB_LOG_COLLECT: false
OPENBB_USE_ION: false
OPENBB_USE_PROMPT_TOOLKIT: false
PIP_DEFAULT_TIMEOUT: 100
PYTHONNOUSERSITE: 1

on: workflow_dispatch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Build:
name: Intel MacOS Build
Expand Down
14 changes: 13 additions & 1 deletion .github/workflows/m1_macos_build.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
name: M1 MacOS Build

env:
OPENBB_ENABLE_QUICK_EXIT: true
OPENBB_LOG_COLLECT: false
OPENBB_USE_ION: false
OPENBB_USE_PROMPT_TOOLKIT: false
PIP_DEFAULT_TIMEOUT: 100
PYTHONNOUSERSITE: 1

on: workflow_dispatch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Build:
name: M1 MacOS Build
Expand Down Expand Up @@ -45,16 +52,21 @@ jobs:
activate-environment: build_env
auto-activate-base: false
use-only-tar-bz2: true # Needed for caching some reason

- name: Run Poetry
run: poetry install
run: poetry install -vvv

- name: Install Pyinstaller
run: poetry install -E installer

- name: Poetry Install Portfolio Optimization and Forecasting Toolkits
run: poetry install -E all

- name: Install Specific Papermill
run: |
pip uninstall papermill -y
pip install git+https://github.com/nteract/papermill.git@main

# This is basically the same as build4mac.sh
- name: Build Bundle
run: |
Expand Down
94 changes: 20 additions & 74 deletions .github/workflows/nightly-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,80 +17,26 @@ concurrency:
cancel-in-progress: true

jobs:
Windows-Build:
name: Windows10 Build
runs-on: [self-hosted, Windows, x64]
# Configuring -------------
trigger-windows-build:
runs-on: ubuntu-latest
steps:
- name: Setup Windows Git Configuration # This is under the assumption that git is already installed on the system
run: |
Set-ItemProperty 'HKLM:\System\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -value 1
git config --system core.longpaths true

- name: Checkout
uses: actions/checkout@v2.4.2
- name: Trigger Windows Build
uses: benc-uk/workflow-dispatch@v1
with:
ref: develop

- name: Activate Base & Create OpenBB Environment
run: |
conda activate base
conda env create -n obb --file build/conda/conda-3-9-env-full.yaml
conda init
conda activate obb
conda env list
- name: Poetry Install
# Conda activate needs to be run every time because of the way that the workflow steps work
# on powershell where it creates a new shell every time for every step
run: |
conda activate obb
poetry install
- name: Poetry Install Portfolio Optimization and Forecasting Toolkits
run: |
conda activate obb
poetry install -E all
- name: Poetry Install Installer
run: |
conda activate obb
poetry install -E installer
- name: Install Specific Papermill
run: |
conda activate obb
pip uninstall papermill -y
pip install git+https://github.com/nteract/papermill.git@main
# Building ------------
- name: Build Terminal.spec file
run: |
conda activate obb
pyinstaller build/pyinstaller/terminal.spec --clean
- name: Move Files into App Folder
run: cp -r .\dist\OpenBBTerminal\ .\build\nsis\app\
# don't need this because log collection is turned off
# - name: Remove Log Data
# run: Remove-Item .\build\nsis\app\openbb_terminal\logs\ -Recurse
- name: Build Exe File
run: |
conda activate obb
C:\'.\Program Files (x86)\'\nsis\makensis.exe .\build\nsis\setup.nsi
- name: Save Build Artifact
uses: actions/upload-artifact@v3
workflow: windows.yml

trigger-macos-build:
runs-on: ubuntu-latest
steps:
- name: Trigger Windows Build
uses: benc-uk/workflow-dispatch@v1
with:
workflow: m1_macos_build.yml

trigger-intel-build:
runs-on: ubuntu-latest
steps:
- name: Trigger Windows Build
uses: benc-uk/workflow-dispatch@v1
with:
name: Windows EXE Artifact
path: '.\build\nsis\OpenBB Terminal Setup.exe'
- name: Run Integration Tests
run: |
dist\OpenBBTerminal\OpenBBTerminal.exe C:\Users\Administrator\actions-runner\_work\OpenBBTerminal\OpenBBTerminal\openbb_terminal\miscellaneous\scripts -t
# Cleaning ------------------------
# Make sure to add Remove-Item C:\Users\Administrator\Desktop\OPENBB-exports -Recurse whenever integration tests get fixed
- name: Remove Previous Build
run: |
Remove-Item '.\build\nsis\OpenBB Terminal Setup.exe' -Recurse
Remove-Item .\build\nsis\app\ -Recurse
Remove-Item .\dist\ -Recurse
Remove-Item .\build\terminal\ -Recurse
- name: Deactivate & Remove Conda Environment
run: |
conda deactivate obb
conda deactivate base
conda env remove -n obb
Remove-Item C:\Users\Administrator\miniconda3\envs\obb\ -Recurse
workflow: intel_macos_build.yml
11 changes: 9 additions & 2 deletions .github/workflows/windows10_build.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
name: Windows10 Build

env:
OPENBB_ENABLE_QUICK_EXIT: true
OPENBB_LOG_COLLECT: false
OPENBB_USE_ION: false
OPENBB_USE_PROMPT_TOOLKIT: false
PIP_DEFAULT_TIMEOUT: 100
PYTHONNOUSERSITE: 1

on: workflow_dispatch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Windows-Build:
name: Windows10 Build
Expand All @@ -15,8 +22,8 @@ jobs:
steps:
- name: Setup Windows Git Configuration # This is under the assumption that git is already installed on the system
run: |
Set-ItemProperty 'HKLM:\System\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -value 1
git config --system core.longpaths true
Set-ItemProperty 'HKLM:\System\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -value 1
git config --system core.longpaths true
- name: Checkout
uses: actions/checkout@v2.4.2
- name: Activate Base & Create OpenBB Environment
Expand Down