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

Dev -> hotfix #3

Merged
merged 5 commits into from
Oct 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions .github/workflows/platform-api-integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: API Integration Tests

on:
workflow_dispatch:

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

jobs:
api-integration-tests:
runs-on: ubuntu-latest
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
OPENBB_API_AUTH: true
OPENBB_API_USERNAME: "USER"
OPENBB_API_PASSWORD: "PASS"

steps:
- name: Slack Notification - Starting
uses: act10ns/slack@v1
with:
status: starting
channel: "#workflows"
message: Starting API Integration Test...
if: always()

- name: Checkout code
uses: actions/checkout@v3

- name: Checkout specific ref
if: github.event_name == 'pull_request'
run: git fetch origin ${{ github.event.pull_request.head.ref }} && git checkout FETCH_HEAD

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

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

- name: Install Dependencies
if: steps.cached-python-environment.outputs.cache-hit != 'true'
run: |
python -m venv runner_env
source runner_env/bin/activate
pip install pytest poetry\
./openbb_platform \
./openbb_platform/providers/alpha_vantage \
./openbb_platform/providers/cboe \
./openbb_platform/providers/quandl \
./openbb_platform/providers/fmp \
./openbb_platform/providers/yfinance \
./openbb_platform/providers/intrinio \
./openbb_platform/extensions/futures \
./openbb_platform/extensions/qa \
./openbb_platform/extensions/ta \
./openbb_platform/extensions/econometrics
pip uninstall -y openbb_core
pip uninstall -y openbb_provider
cd openbb_platform/platform/core
pip install -U .
cd ../provider/
pip install -U .
cd ../../../
pip install -U pydantic

- name: Populate System Setting Files
run: |
mkdir -p ~/.openbb_platform
touch ~/.openbb_platform/system_settings.json
echo '{"log_collect":false}' > ~/.openbb_platform/system_settings.json
cat ~/.openbb_platform/system_settings.json

- name: Create and Populate user_settings.json from GitHub Secrets
run: |
touch ~/.openbb_platform/user_settings.json
echo '{
"credentials": {
"benzinga_api_key": ${{ secrets.BENZINGA_API_KEY }},
"fmp_api_key": "${{ secrets.FMP_API_KEY }}",
"polygon_api_key": "${{ secrets.POLYGON_API_KEY }}",
"alpha_vantage_api_key": "${{ secrets.ALPHA_VANTAGE_API_KEY }}",
"fred_api_key": "${{ secrets.FRED_API_KEY }}",
"intrinio_api_key": "${{ secrets.INTRINIO_API_KEY }}"
}
}' > ~/.openbb_platform/user_settings.json

- name: Launch the Uvicorn Process
run: |
source runner_env/bin/activate
pip list
uvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload &

- name: Wait for 10 seconds
run: sleep 10

- name: Run API Integration Tests
run: |
source runner_env/bin/activate
pip list
cd openbb_platform
pytest -m integration

- name: Cache pip packages
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: runner_env-${{ runner.os }}-v1-${{ hashFiles('**/poetry.lock', '**/dev_install.py') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Upload summary to Slack
uses: adrey/slack-file-upload-action@master
with:
token: ${{ secrets.SLACK_API_TOKEN }}
initial_comment: "API Integration test summary"
title: "Integration test summary"
path: summary.txt
channel: ${{ secrets.SLACK_CHANNEL_ID }}

- name: Slack Notification - Success/Failure
uses: act10ns/slack@v1
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
channel: "#workflows"
if: always()
96 changes: 96 additions & 0 deletions .github/workflows/platform-integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Integration Tests

on:
push:
branches:
- release/*
- main
workflow_dispatch:

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

jobs:
integration-tests:
runs-on: ubuntu-latest
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
steps:
- name: Slack Notification - Starting
uses: act10ns/slack@v1
with:
status: starting
channel: '#workflows'
message: Starting Integration Test...
if: always()

- name: Checkout code
uses: actions/checkout@v3

- name: Checkout specific ref
if: github.event_name == 'pull_request'
run: git fetch origin ${{ github.event.pull_request.head.ref }} && git checkout FETCH_HEAD

- 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.4.0
virtualenvs-create: true
virtualenvs-in-project: true

- name: Setup sudo apt installs for ubuntu-latest
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.0-dev

- 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
id: integration-tests
run: |
source $VENV
python terminal.py -t | tee result.txt
grep "================================ Integration Test Summary ================================" result.txt -A100 | tail --bytes=2000 > summary.txt
echo >> summary.txt

- name: Run Integration Tests Coverage Report
id: integration-tests-coverage
run: |
source $VENV
python terminal.py -t --coverage | tee result.txt
sed -n '/Integration Coverage Summary/,$p' result.txt >> summary.txt

- name: Upload summary to Slack
uses: adrey/slack-file-upload-action@master
with:
token: ${{ secrets.SLACK_API_TOKEN }}
initial_comment: "Integration test summary"
title: "Integration test summary"
path: summary.txt
channel: ${{ secrets.SLACK_CHANNEL_ID }}

- name: Slack Notification - Success/Failure
uses: act10ns/slack@v1
with:
status: ${{ job.status }}
steps: ${{ toJson(steps) }}
channel: '#workflows'
if: always()
24 changes: 15 additions & 9 deletions website/content/bot/reference/discord/autopost/add.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,38 @@
---
########### THIS FILE IS AUTO GENERATED - ANY CHANGES WILL BE VOID ###########
title: add
title: commands add
description: OpenBB Discord Command
---

# add
# commands add

This command allows the user to add an autopost webhook feed to a channel. It allows the user to receive notifications from OpenBB webhooks in the channel without having to manually post them. This can be used to keep track of flow, darkpool, market heatmap and more.
This command allows the user to add an autopost command to a channel. It allows the user to receive notifications from OpenBB bot in the channel without having to manually query them. This can be used for all commands that appear in the list when you run "autopost commands add"

### Usage

```python wordwrap
/autopost add
/autopost commands add cmd interval [start_time] [stop_time]
```

---

## Parameters

This command has no parameters


| Name | Description | Optional | Choices |
| ---- | ----------- | -------- | ------- |
| cmd | Pick the command you want to assign for autoposting | False | List of commands that allow auto posting |
| interval | How oftern to post the autopost command | False | 5m, 15m, 30m, 1hr, 2hr, 4hr, 6hr |
| start_time | Time to start the autopost command - ex. If I want to start at 8am I do 8 | True | 24hr time |
| stop_time | Time to stop the autopost command - ex. If I want to stop at 6pm I do 18 | True | 24hr time |

---

## Examples

```
/autopost add
/autopost commands add cmd:/cm interval:1 Hour
```

```
/autopost commands add cmd: /cm interval: 1 Hour start_time: 9 stop_time: 10
```
---
39 changes: 39 additions & 0 deletions website/content/bot/reference/discord/autopost/feeds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
########### THIS FILE IS AUTO GENERATED - ANY CHANGES WILL BE VOID ###########
title: feeds
description: OpenBB Discord Command
---

# feeds

This command allows the user to add, remove, or list autopost webhook feeds to a channel. It allows the user to receive notifications from OpenBB webhooks in the channel without having to manually post them. This can be used to keep track of flow, darkpool, and market heatmaps.


### Usage

```python wordwrap
/autopost feeds action
```

---

## Parameters

| Name | Description | Optional | Choices |
| ---- | ----------- | -------- | ------- |
| action | Add, Remove, or List your feeds for Discord autoposts | False | Add, Remove, List |


## Examples

```
/autopost feeds action:Add
```

```
/autopost feeds action:List
```

```
/autopost feeds action:Remove
```
18 changes: 9 additions & 9 deletions website/content/bot/reference/discord/autopost/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ import ReferenceCard from "@site/src/components/General/ReferenceCard";
<ul className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 -ml-6">

<ReferenceCard
title="add"
description="This command allows the user to add an autopost webhook feed to a channel. It allows the user to receive..."
url="/bot/reference/discord/autopost/add"
title="feeds"
description="This command allows you to manage your autopost feeds 'flow, darkpool, or heatmap'"
url="/bot/reference/discord/autopost/feeds"
/>
<ReferenceCard
title="list"
description="This command allows users to view all webhook feeds associated with a particular channel that have been set up..."
url="/bot/reference/discord/autopost/list"
title="commands add"
description="Allows you to add a bot command as an autopost (different from feed)"
url="/bot/reference/discord/autopost/add"
/>
<ReferenceCard
title="remove"
description="This command allows the user to remove an autopost webhook feed from the channel. When executed, it will remove..."
url="/bot/reference/discord/autopost/remove"
title="commands manage"
description="Allows you to remove or list your bot command autoposts in a channel"
url="/bot/reference/discord/autopost/manage"
/>
</ul>
32 changes: 0 additions & 32 deletions website/content/bot/reference/discord/autopost/list.md

This file was deleted.

Loading