Skip to content
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
36 changes: 26 additions & 10 deletions .github/workflows/api-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,37 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Liberate disk space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
large-packages: false
docker-images: false
swap-storage: false

- name: Define docker helper
run: |
echo 'runInContainer() { docker exec test-container "$@"; }' > $HOME/ci_functions.sh
echo "BASH_ENV=$HOME/ci_functions.sh" >> $GITHUB_ENV

- name: Start container
run: |
docker run -d \
--workdir /__w/Lean/Lean \
-v /home/runner/work:/__w \
-e GITHUB_REF=${{ github.ref }} \
-e QC_JOB_USER_ID=${{ secrets.QC_JOB_USER_ID }} \
-e QC_API_ACCESS_TOKEN=${{ secrets.QC_API_ACCESS_TOKEN }} \
-e QC_JOB_ORGANIZATION_ID=${{ secrets.QC_JOB_ORGANIZATION_ID }} \
--name test-container \
quantconnect/lean:foundation \
tail -f /dev/null

- name: Run API Tests
uses: addnab/docker-run-action@v3
with:
image: quantconnect/lean:foundation
options: --workdir /__w/Lean/Lean -v /home/runner/work:/__w -e GITHUB_REF=${{ github.ref }} -e QC_JOB_USER_ID=${{ secrets.QC_JOB_USER_ID }} -e QC_API_ACCESS_TOKEN=${{ secrets.QC_API_ACCESS_TOKEN }} -e QC_JOB_ORGANIZATION_ID=${{ secrets.QC_JOB_ORGANIZATION_ID }}
shell: bash
run: |
# Build
dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln
# Run Projects tests
dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll --blame-hang-timeout 7minutes --blame-crash --logger "console;verbosity=detailed" --filter "FullyQualifiedName=QuantConnect.Tests.API.ProjectTests|FullyQualifiedName=QuantConnect.Tests.API.ObjectStoreTests" -- TestRunParameters.Parameter\(name=\"log-handler\", value=\"ConsoleErrorLogHandler\"\)
run: |
# Build
runInContainer dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln

# Run Projects tests
runInContainer dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll --blame-hang-timeout 7minutes --blame-crash --logger "console;verbosity=detailed" --filter "FullyQualifiedName=QuantConnect.Tests.API.ProjectTests|FullyQualifiedName=QuantConnect.Tests.API.ObjectStoreTests" -- TestRunParameters.Parameter\(name=\"log-handler\", value=\"ConsoleErrorLogHandler\"\)
62 changes: 44 additions & 18 deletions .github/workflows/gh-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,47 @@ jobs:
docker-images: false
swap-storage: false

- uses: addnab/docker-run-action@v3
with:
image: quantconnect/lean:foundation
options: --workdir /__w/Lean/Lean -v /home/runner/work:/__w -e GITHUB_REF=${{ github.ref }} -e PYPI_API_TOKEN=${{ secrets.PYPI_API_TOKEN }} -e ADDITIONAL_STUBS_REPOS=${{ secrets.ADDITIONAL_STUBS_REPOS }} -e QC_GIT_TOKEN=${{ secrets.QC_GIT_TOKEN }}
shell: bash
run: |
# Add exception
git config --global --add safe.directory /__w/Lean/Lean
# Get Last Commit of the Current Tag
TAG_COMMIT=$(git rev-parse HEAD) && echo "CURRENT BRANCH LAST COMMIT $TAG_COMMIT"
# Get Last Commit of the master
MASTER_COMMIT=$(git rev-parse origin/master) && echo "MASTER BRANCH LAST COMMIT $MASTER_COMMIT"
# Build
dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln && \
# Run Tests
dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll --blame-hang-timeout 300seconds --blame-crash --filter "TestCategory!=TravisExclude&TestCategory!=ResearchRegressionTests" -- TestRunParameters.Parameter\(name=\"log-handler\", value=\"ConsoleErrorLogHandler\"\) && \
# Generate & Publish python stubs
echo "GITHUB_REF $GITHUB_REF" && if [[ $GITHUB_REF = refs/tags/* && "$TAG_COMMIT" = "$MASTER_COMMIT" ]]; then echo "Generating stubs" && (chmod +x ci_build_stubs.sh && ./ci_build_stubs.sh -t -g -p); else echo "Skipping stub generation"; fi
- name: Define docker helper
run: |
echo 'runInContainer() { docker exec test-container "$@"; }' > $HOME/ci_functions.sh
echo "BASH_ENV=$HOME/ci_functions.sh" >> $GITHUB_ENV

- name: Start container
run: |
docker run -d \
--workdir /__w/Lean/Lean \
-v /home/runner/work:/__w \
-e GITHUB_REF=${{ github.ref }} \
-e PYPI_API_TOKEN=${{ secrets.PYPI_API_TOKEN }} \
-e ADDITIONAL_STUBS_REPOS=${{ secrets.ADDITIONAL_STUBS_REPOS }} \
-e QC_GIT_TOKEN=${{ secrets.QC_GIT_TOKEN }} \
--name test-container \
quantconnect/lean:foundation \
tail -f /dev/null

- name: Run build and tests
run: |
# Add exception
runInContainer git config --global --add safe.directory /__w/Lean/Lean

# Get Last Commit of the Current Tag
TAG_COMMIT=$(runInContainer git rev-parse HEAD) && echo "CURRENT BRANCH LAST COMMIT $TAG_COMMIT"

# Get Last Commit of the master
MASTER_COMMIT=$(runInContainer git rev-parse origin/master) && echo "MASTER BRANCH LAST COMMIT $MASTER_COMMIT"

# Build
runInContainer dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln

# Run Tests
runInContainer dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll --blame-hang-timeout 300seconds --blame-crash --filter "TestCategory!=TravisExclude&TestCategory!=ResearchRegressionTests" -- TestRunParameters.Parameter\(name=\"log-handler\", value=\"ConsoleErrorLogHandler\"\)

# Generate & Publish python stubs
echo "GITHUB_REF ${{ github.ref }}"
if [[ "${{ github.ref }}" = refs/tags/* && "$TAG_COMMIT" = "$MASTER_COMMIT" ]]; then
echo "Generating stubs"
runInContainer chmod +x ci_build_stubs.sh
runInContainer ./ci_build_stubs.sh -t -g -p
else
echo "Skipping stub generation"
fi
34 changes: 24 additions & 10 deletions .github/workflows/regression-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Liberate disk space
uses: jlumbroso/free-disk-space@main
with:
Expand All @@ -21,13 +22,26 @@ jobs:
docker-images: false
swap-storage: false

- uses: addnab/docker-run-action@v3
with:
image: quantconnect/lean:foundation
options: --workdir /__w/Lean/Lean -v /home/runner/work:/__w
shell: bash
run: |
# Build
dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln
# Run Tests
dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll --filter TestCategory=RegressionTests -- TestRunParameters.Parameter\(name=\"log-handler\", value=\"ConsoleErrorLogHandler\"\) TestRunParameters.Parameter\(name=\"reduced-disk-size\", value=\"true\"\)
- name: Define docker helper
run: |
echo 'runInContainer() { docker exec test-container "$@"; }' > $HOME/ci_functions.sh
echo "BASH_ENV=$HOME/ci_functions.sh" >> $GITHUB_ENV

- name: Start container
run: |
docker run -d \
--workdir /__w/Lean/Lean \
-v /home/runner/work:/__w \
--name test-container \
quantconnect/lean:foundation \
tail -f /dev/null

- name: Build
run: runInContainer dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln

- name: Run Tests
run: |
runInContainer dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll \
--filter TestCategory=RegressionTests \
-- TestRunParameters.Parameter\(name=\"log-handler\", value=\"ConsoleErrorLogHandler\"\) \
TestRunParameters.Parameter\(name=\"reduced-disk-size\", value=\"true\"\)
37 changes: 25 additions & 12 deletions .github/workflows/report-generator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Liberate disk space
uses: jlumbroso/free-disk-space@main
with:
Expand All @@ -21,15 +22,27 @@ jobs:
docker-images: false
swap-storage: false

- uses: addnab/docker-run-action@v3
with:
image: quantconnect/lean:foundation
options: --workdir /__w/Lean/Lean -v /home/runner/work:/__w
shell: bash
run: |
# Build
dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln
# Run Backtest
cd ./Launcher/bin/Release && dotnet QuantConnect.Lean.Launcher.dll && cd ../../../
# Run Report
cd ./Report/bin/Release && dotnet ./QuantConnect.Report.dll --backtest-data-source-file ../../../Launcher/bin/Release/BasicTemplateFrameworkAlgorithm.json --close-automatically true
- name: Define docker helper
run: |
echo 'runInContainer() { docker exec test-container "$@"; }' > $HOME/ci_functions.sh
echo "BASH_ENV=$HOME/ci_functions.sh" >> $GITHUB_ENV

- name: Start container
run: |
docker run -d \
--workdir /__w/Lean/Lean \
-v /home/runner/work:/__w \
--name test-container \
quantconnect/lean:foundation \
tail -f /dev/null

- name: Build and Run Report Generator Tests
run: |
# Build
runInContainer dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln

# Run Backtest
runInContainer bash -c "cd ./Launcher/bin/Release && dotnet QuantConnect.Lean.Launcher.dll"

# Run Report
runInContainer bash -c "cd ./Report/bin/Release && dotnet ./QuantConnect.Report.dll --backtest-data-source-file ../../../Launcher/bin/Release/BasicTemplateFrameworkAlgorithm.json --close-automatically true"
52 changes: 39 additions & 13 deletions .github/workflows/research-regression-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Liberate disk space
uses: jlumbroso/free-disk-space@main
with:
Expand All @@ -21,21 +22,46 @@ jobs:
docker-images: false
swap-storage: false

- uses: addnab/docker-run-action@v3
with:
image: quantconnect/lean:foundation
options: --workdir /__w/Lean/Lean -v /home/runner/work:/__w
shell: bash
run: |
# install dependencies
- name: Define docker helper
run: |
echo 'runInContainer() { docker exec test-container "$@"; }' > $HOME/ci_functions.sh
echo "BASH_ENV=$HOME/ci_functions.sh" >> $GITHUB_ENV

- name: Start container
run: |
docker run -d \
--workdir /__w/Lean/Lean \
-v /home/runner/work:/__w \
--name test-container \
quantconnect/lean:foundation \
tail -f /dev/null

- name: Install Dependencies and Setup Kernel
run: |
runInContainer bash -c "
# Install dependencies
pip3 install papermill==2.4.0 clr-loader==0.2.9
# install kernel
dotnet tool install -g --no-cache --version 1.0.661703 --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" Microsoft.dotnet-interactive
# Add dotnet tools to Path
export PATH="$HOME/.dotnet/tools:$PATH"
# activate kernel for jupyter

# Install kernel
dotnet tool install -g --no-cache --version 1.0.661703 \
--add-source 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' \
Microsoft.dotnet-interactive

# Add dotnet tools to Path and activate kernel
export PATH=\"/root/.dotnet/tools:\$PATH\"
dotnet interactive jupyter install
"

- name: Build and Run Research Tests
run: |
runInContainer bash -c "
# Build
export PATH=\"/root/.dotnet/tools:\$PATH\"
dotnet build /p:Configuration=Release /v:quiet /p:WarningLevel=1 QuantConnect.Lean.sln

# Run Tests
dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll --filter TestCategory=ResearchRegressionTests -- TestRunParameters.Parameter\(name=\"log-handler\", value=\"ConsoleErrorLogHandler\"\) TestRunParameters.Parameter\(name=\"reduced-disk-size\", value=\"true\"\)
dotnet test ./Tests/bin/Release/QuantConnect.Tests.dll \
--filter TestCategory=ResearchRegressionTests \
-- \"TestRunParameters.Parameter(name=\\\"log-handler\\\", value=\\\"ConsoleErrorLogHandler\\\")\" \
\"TestRunParameters.Parameter(name=\\\"reduced-disk-size\\\", value=\\\"true\\\")\"
"
26 changes: 18 additions & 8 deletions .github/workflows/syntax-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,22 @@ jobs:
large-packages: false
docker-images: false
swap-storage: false

- name: Define docker helper
run: |
echo 'runInContainer() { docker exec test-container "$@"; }' > $HOME/ci_functions.sh
echo "BASH_ENV=$HOME/ci_functions.sh" >> $GITHUB_ENV

- name: Start container
run: |
docker run -d \
--workdir /__w/Lean/Lean \
-v /home/runner/work:/__w \
--name test-container \
quantconnect/lean:foundation \
tail -f /dev/null

- name: Run Syntax Test
uses: addnab/docker-run-action@v3
with:
image: quantconnect/lean:foundation
options: --workdir /__w/Lean/Lean -v /home/runner/work:/__w
shell: bash
run: |
pip install --no-cache-dir quantconnect-stubs types-requests==2.32.* types-pytz==2025.2.0.* mypy==1.15.0 && \
python run_syntax_check.py
run: |
runInContainer bash -c "pip install --no-cache-dir quantconnect-stubs types-requests==2.32.* types-pytz==2025.2.0.* mypy==1.15.0"
runInContainer python run_syntax_check.py
Loading
Loading