diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml new file mode 100644 index 00000000000..3a9e4c4c177 --- /dev/null +++ b/.github/workflows/integration-test.yml @@ -0,0 +1,51 @@ +name: Integration Tests + +on: + push: + branches: + - release/* + pull_request: + branches: + - develop + - main + +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 diff --git a/.github/workflows/intel_macos_build.yml b/.github/workflows/intel_macos_build.yml index 94e75d07512..bdb01afcd4e 100644 --- a/.github/workflows/intel_macos_build.yml +++ b/.github/workflows/intel_macos_build.yml @@ -1,4 +1,5 @@ name: Intel MacOS Build + env: OPENBB_ENABLE_QUICK_EXIT: true OPENBB_LOG_COLLECT: false @@ -6,7 +7,13 @@ env: 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 diff --git a/.github/workflows/m1_macos_build.yml b/.github/workflows/m1_macos_build.yml index 71c4ee345ab..19131d86899 100644 --- a/.github/workflows/m1_macos_build.yml +++ b/.github/workflows/m1_macos_build.yml @@ -1,4 +1,5 @@ name: M1 MacOS Build + env: OPENBB_ENABLE_QUICK_EXIT: true OPENBB_LOG_COLLECT: false @@ -6,7 +7,13 @@ env: 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 @@ -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: | diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index 49c3913a44d..42e734dab2e 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -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: - 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: m1_macos_build.yml + + trigger-intel-build: + runs-on: ubuntu-latest + steps: + - name: Trigger Windows Build + uses: benc-uk/workflow-dispatch@v1 + with: + workflow: intel_macos_build.yml diff --git a/.github/workflows/windows10_build.yml b/.github/workflows/windows10_build.yml index 5fa1fd59a15..f58c91a5d05 100644 --- a/.github/workflows/windows10_build.yml +++ b/.github/workflows/windows10_build.yml @@ -1,4 +1,5 @@ name: Windows10 Build + env: OPENBB_ENABLE_QUICK_EXIT: true OPENBB_LOG_COLLECT: false @@ -6,7 +7,13 @@ env: 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 @@ -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