mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-31 22:41:19 +00:00
* rename sdk_token to pat to follow hub convention * black * move OpenBBError class to error model * add OBBject class docstring * pylint * add futures to app docstring * Linting * Fix chart-related mypy errors. Co-Author: ’hjoaquim’ * Fix more mypy warnings * Build static * MyPy improvements * move get_branch request to logging_settings (#5348) * move get_branch request to logging_settings * black * add todo * Revert "add todo" This reverts commit7e3af83e3d. * add todo * Update logging_settings.py * mac/linux install script python output suppressed * rename .settings to .user for consistency * update readme * update readme * Linting * Linting and improvements * Regenerate static files * Snake_case, mypy, typing, improvements. | Co-Author: montezdesousa * Rebuild * Revert Fetcher * better cpi * Snake case * fixes: major_indices_eod for intraday, optional company_overview atrs * Feature/remove unncessary stuff (#5346) * removing the journal service from the command_runner * remove the journal service and fix tests * removing journal from the command_runner * removing journal entry references and adding optional metadata * rebuilding static assets * removing all references to journal entry * removing all references to journal and journal repository * removing journal query references * restructuring the command runner * fix argument mismatch and settings to user mismatch * dropping command runner session * re generation of static assets * ruff n black * removing introduced bug * removing duplicate reference due to merging * 3.8 compatible static assets * changing the way we deal with erros - removing the Error model * removing unncessary filters * fixing tests * regenerating static assets * remving mongodb references from user service * remving mongodb references * updating dependencies with removed pymongo * updating dependencies with removed pymongo * removing useless call * fix typo * ruff * fixing tests * ruff * removing leftovers * making registry map 3.8 compatible * static assets * ruff * Hotfix/squeeze import (#5358) * remove commit_hash and branch references * lazy load stats, scipy, pandas_ta * black & ruff * adding commithash back to log prefix * fix test --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> * .user got lost in merge * improve __repr__ for sdk classes * changing posthog project key (#5362) * Linting and improvements * Rebuild QA * fix py38 + metadata ref in docstrings * doc ident * restore qa * update readme: remove journal * doc detail * disable black in App docstring * update readme: command execution * ruff * remove run_in_isolation: cannot pickle nested classes * remove outdated dir openbb_sdk * outdated workflow * update ruff * dependency related changes * using model validator instead * adjustments to the system model * minor adjustments * revert all changes on stocks controller * working historical price * controller_builder file * process class recursivly * adding translators prop * poc with platform as a menu and as command * paths feature * adding subcontrollers * offline access * menu text as obj variable * adjustments * move help to base class; print tables using rich table (for now); clear the choices for better autocompletion * introducing the platform controller factory * remove unnecessary file * revert changes to files * dinamically generate platform menus * generated platform commands * poetry lock * fix for literals and choices * adjustments - recursive iteration only if it's a class * router name should be lower() to match the class processor * deps * better output * handling base models * comment call_news * Feature/v4 deprecate everything (#6113) * comment call_news * remove news * remove keys controller * remove settings controller * remove ta forex * remove qa economy * remove ta stocks * remove qa stocks * remove fa stocks * remove ins stocks * remove gov stocks * remove dps stocks * remove ba stocks * remove bt stocks * remove stocks * remove stocks base controller class * ruff * remove qa forex * remove oanda * remove forex * remove forex * remove forex * remove mention to fx_tickers * remove ta crypto * remove qa crypto * remove dd crypto * remove crypto controller * remove crypto references * remove economy controller * remove economy folder * remoe etf controller * remove reports controller * remove dashboards controller * remove alt controller * rmeove etf files * remove alt files * remove custom reports * remove dashboard files * remove econometrics controller * remove forecast controller * remove reports files * remove forecast files * remove econometrics files * remove portfolio * remove futures * remove fixedincome * remove funds * remove sdk and common * remove all from init * remove reference to ipykernel * remove reference to ta_helpers * remove reference to ta_helpers * cleanup * adjustments to choices * remove old sdk generator * remove mention to dashboards * ruff * cleanup * remove logging infra * remove decorators * remove sdk audit * remove tought of the day * remove tought of the day * fix commands andmenus choices * fixing lints * ruffs * remove old tests * deps trim * using container as condition for recursion * remove unnecessary dependencies * move dep to better section * python versions * poetry lock * better custmo annotations * handling properties * handling edge cases: no func_doc and when signarute doesn't match type hints (self) * reverting treating models as props * provider groups * comment debug stuff * Revert "comment debug stuff" This reverts commitf0a86f04a8. * comment debug stuff * little adjustment for annotated types * injecting the reference to make the custom argument groups available * comments * custom model_dump to drop choices * deprecated * remove update option * remove update * remove translations * remove account controller * command descriptions * menu descriptions * removing interactive tables * limit the number of columns and rows * menu descriptions * show indexes * More cleanups (#6245) * renames * remove .init files * remove unused files * remove session stuff * remove session and sources stuff * remove unused models * remove sdk session * remove charting infra * remove charting stuff but allow console style * updates in models * raise directly * call terminal directly and remove artifacts * remove reference to sources * remove reference to source arg * remove reference to source arg * remove unused stuff * remove screenshot and raise directly * remove unnecessary helper classes * update the config file * remove references to old charting infra * call terminal directly * update deps * make user always local for now * rename to CLI * ruff * export options * export functionality * update rich * update example routine * fix issues with queue * temporary workaround for username * deprecate main menu commands * deprecate commands and remove unused stuff * deprecate commands and remove unused stuff * deprecate commands and remove unused stuff * adjustments and cleanups * routines syncing w hub * small adjustments to point to the right instance * whoami * custom terminal style * adjustments related to preferences * deprecate stuff * rename terminal style * deprecate more things * more deprecation * more adjustments * current settings - deprecating preferences, user and system * terminal settings * revmap custom terminal settings * cli version * ruff * black * linting fixes * happy mypy * ruff * remove old terminal build files * remove devcontainer * update dependencies * trim commands and its descriptions * better warnings * remove commands and menus str and show warnings if dev mode * get command descriptions from the translators instead * Add username in brackets if logged in * fix buggy command descriptions * [Feature] Bug fixing the Platform CLI (#6291) * fix buggy command descriptions * new reference structure * Seggregate data commands from others (settings etc) * fix table html for charting extension * number of rows and columns as a setting * interactive tables * adding menu descriptions --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> * fix the way reference was being passed * fix choices parsing for providers * loosen to get instead * obbject registry class * obbject registry class * using the obbject registry to show available options * link obbject results to data processing commands data argument * small improvements to correctly get the standard args * intersecting data processing commands and matching the obbject trough its id * poetry lock * use openbb field * safe json conversion and trimming * better at finding nargs when union * improved obbject registry using a stack * data processing section * Update argparse_translator/argparse_class_processor.py Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> * fix: remove unused function * fix: terminal.py -> openbb_terminal/cli.py * fix: move local model function to utils & delete module * fix: rename hub_model.py to hub_service.py * fix: delete paths_helper.py, not used * fix: circular import console * fix: move terminal_style.py from plots/ to config, delete plots/ * fix: delele base_helpers.py, function moved to env_handler.py * fix: move custom_prompt_toolkit.py to core/completer * fix: delete requirements.txt, we can export them later if needed * fix: move routines stuff to routines/ * fix: move rich_config.py to core/config * fix: rename parent_classes.py to base_controller.py * Danger: create controllers/ and move stuff * fix: move custom_prompt_toolkit.py to config and delete completer/ * fix: rename custom_prompt_toolkit.py to completer.py * fix: move rouines stuff to folder * ^ oops * Edits * fix: settings import * fix: openbb command * Fix routine record when local user * Lint * Remove quickexit * Fix timezone change * fix data processing commands: not allowing multiple items + need to allow 0 (which evalutes as false) * split comma separated strings into a list so that the cli can consume them * Feature/move terminal files (#6344) * Move terminal files into openbb_terminal * move routines * Create session to handle console, user, settings, etc. * Reset... * Bring back frontend-components * Move frontend-components to openbb_terminal * rename vars * remove doc * rename method * rename method * fix routines * read settings from .env * rename methods * ^ * ^ * better * bug * ^ * move frontend-components back to root level * revert changes * type checking only * docstring * fix: settings autocomplete * comment * use openbb_core singleton * rename src to fix openbb command * fix poetry build * readme --------- Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt> --------- Co-authored-by: Diogo Sousa <montezdesousa@gmail.com> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com> Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: tehcoderer <me@tehcoderer.com> Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
232 lines
17 KiB
Markdown
Vendored
232 lines
17 KiB
Markdown
Vendored
# OpenBB Workflows
|
|
This directory contains the workflows for the OpenBB 🦋 Project. The workflows are:
|
|
|
|
| Workflows | Summary | Branches
|
|
| :-------------------- |:------------------ | :------------------
|
|
| branch-name-check.yml | Checks if the branch name is valid and follows the naming convention. | all branches
|
|
| build-release.yml | Builds the project and runs the tests. | main, release/*
|
|
| docker-build.yml | Builds the docker image and pushes it to the docker hub. | all branches (only pushes to docker hub on main)
|
|
| draft-release.yml | Creates a draft release when a new tag is pushed. | -
|
|
| gh-pages.yml | Builds the documentation and deploy to github pages. | main and release/*
|
|
| integration-test.yml | Runs the integration tests. | all branches
|
|
| labels-issue.yml | Creates an issue when a new bug is reported. | -
|
|
| labels-PR.yml | Adds labels to the issues and pull requests. | -
|
|
| linting.yml | Runs the linters. | all branches
|
|
| macos-build.yml | Builds the project on M1 Macs. | develop, main, release/*
|
|
| macos-ml.yml | Builds the project on Mac OS X Full Clean Build with ML. | main
|
|
| nightly-build.yml | Builds the project and runs the integration tests every night on the `develop` branch. | develop
|
|
| pypi.yml | Publishes the package to PyPI. | all branches (only pushes to PyPI on main)
|
|
| pypi-nightly.yml | Publishes the package to PyPI every night on the `develop` branch. | develop
|
|
| unit-test.yml | Runs the unit tests. | all branches
|
|
| windows_ml.yml | Builds the project on Windows 10 Full Clean Build with ML. | main
|
|
| windows10_build.yml | Builds the project on Windows 10. | all branches
|
|
|
|
## Branch Name Check Workflow
|
|
Objective: To check if pull request branch names follow the GitFlow naming convention before merging.
|
|
|
|
Triggered by: A pull request event where the target branch is either develop or main.
|
|
|
|
Branches checked: The source branch of a pull request and the target branch of a pull request.
|
|
|
|
Steps:
|
|
|
|
1. Extract branch names: Using the jq tool, the source and target branch names are extracted from the pull request event. The branch names are then stored in environment variables and printed as output.
|
|
|
|
2. Show Output result for source-branch and target-branch: The source and target branch names are printed to the console.
|
|
|
|
3. Check branch name for develop PRs: If the target branch is develop, then the source branch is checked against a regular expression to ensure that it follows the GitFlow naming convention. If the branch name is invalid, a message is printed to the console and the workflow exits with a status code of 1.
|
|
|
|
4. Check branch name for main PRs: If the target branch is main, then the source branch is checked against a regular expression to ensure that it is either a hotfix or a release branch. If the branch name is invalid, a message is printed to the console and the workflow exits with a status code of 1.
|
|
|
|
Note: The GitFlow naming convention for branches is as follows:
|
|
|
|
- Feature branches: feature/<feature-name>
|
|
- Hotfix branches: hotfix/<hotfix-name>
|
|
- Release branches: release/<major.minor.patch>(rc<number>)
|
|
|
|
## Build Release Workflow
|
|
This GitHub Actions workflow is responsible for building and releasing software for multiple platforms (Windows, M1 MacOS, Intel MacOS, and Docker).
|
|
The workflow has four jobs:
|
|
|
|
- `trigger-windows-build`
|
|
- `trigger-macos-build`
|
|
- `trigger-intel-build`
|
|
- `trigger-docker-build`
|
|
|
|
Each job uses the `aurelien-baudet/workflow-dispatch` action to trigger another workflow, respectively `windows10_build.yml`, `m1_macos_build.yml`, `intel_macos_build.yml`, and `docker.yml`. The `GITHUB_TOKEN` is passed as a secret so that the triggered workflows have access to the necessary permissions. The `wait-for-completion-timeout` is set to 2 hours, which is the maximum amount of time the job will wait for the triggered workflow to complete.
|
|
|
|
## Docker Workflow
|
|
This GitHub Actions workflow is responsible for building and pushing the docker image to the itHub Container Registry. This workflow is triggered when a new change is pushed to the main branch of the repository, and the Docker image is published to the GitHub Container Registry.
|
|
|
|
Steps
|
|
-----
|
|
|
|
1. Checkout Code: This step checks out the code from the GitHub repository.
|
|
|
|
2. Login to GitHub Container Registry: This step logs into the GitHub Container Registry using the GitHub Actions token.
|
|
|
|
3. Setup Commit Hash: This step sets the commit hash of the code that is being built.
|
|
|
|
4. Build Env File: This step builds the environment file for the Docker image.
|
|
|
|
5. Building the Docker Image: This step builds the Docker image using the scripts in the `build/docker` directory.
|
|
|
|
6. Publishing the Docker Image: This step publishes the Docker image to the GitHub Container Registry. The Docker image is only pushed to the registry if the branch being built is `main`.
|
|
|
|
## Release Drafter Workflow
|
|
This GitHub Actions workflow is designed to automatically generate and update draft releases in a GitHub repository. The workflow is triggered when it is manually dispatched, allowing you to control when the draft releases are updated.
|
|
|
|
## GH Pages Workflow
|
|
This GitHub Actions workflow is responsible for building the documentation and deploying it to GitHub Pages. This workflow is triggered when a new change is pushed to the `main` or `release` branch of the repository, and the documentation is published to GitHub Pages.
|
|
|
|
## Integration Test Workflow
|
|
This GitHub Action is used to run integration tests on your code repository. It is triggered on pushes to the `release/*` or `main` branches, and it runs on the latest version of Ubuntu.
|
|
|
|
The workflow consists of the following steps:
|
|
|
|
1. Check out the code from the repository
|
|
2. Set up Python 3.9
|
|
3. Install Poetry, a package and dependency manager for Python
|
|
4. Load a cached virtual environment created by Poetry, to speed up the process if possible
|
|
5. Install dependencies specified in the `poetry.lock` file
|
|
6. Run the integration tests using the `terminal.py` script
|
|
7. Upload a summary of the test results to Slack
|
|
|
|
The results of the tests are captured in a file called `result.txt`. The summary of the tests, including information about failed tests, is then uploaded to Slack using the `adrey/slack-file-upload-action` GitHub Action.
|
|
|
|
## Linting Workflow
|
|
This GitHub Actions workflow is responsible for running linting checks on the codebase. This workflow is triggered on pull request events such as `opened`, `synchronize`, and `edited`, and push events on branches with names that start with `feature/`, `hotfix/`, or `release/`. The workflow also sets a number of environment variables and uses Github Actions caching to improve performance.
|
|
|
|
It consists of two jobs: `code-linting` and `markdown-link-check`.
|
|
|
|
The first job, `code-linting`, runs on an Ubuntu machine and performs several linting tasks on the code in the repository, including:
|
|
|
|
- Checking out the code from the repository
|
|
- Setting up Python 3.9
|
|
- Installing a number of Python packages necessary for the linting tasks
|
|
- Running `bandit` to check for security vulnerabilities
|
|
- Running `black` to check the code formatting
|
|
- Running `codespell` to check the spelling of comments, strings, and variable names
|
|
- Running `ruff` to check the use of Python
|
|
- Running `mypy` to check the type annotations
|
|
- Running `pyupgrade` to upgrade Python 2 code to Python 3
|
|
- Running `pylint` to perform static analysis of the code
|
|
|
|
The second job, `markdown-link-check`, runs on an Ubuntu machine and performs linting of the markdown files in the repository. It uses a Docker container `avtodev/markdown-lint` to perform the linting.
|
|
|
|
## MacOS Build Workflow
|
|
This GitHub Actions workflow is used to build a version of the OpenBB Platform CLI for M1 MacOS. The build process includes installing necessary dependencies, building the terminal application using PyInstaller, creating a DMG file for distribution, and running integration tests on the built application.
|
|
|
|
Jobs
|
|
----
|
|
|
|
The workflow consists of a single job named `Build` which runs on self-hosted MacOS systems with ARM64 architecture. The job performs the following steps:
|
|
|
|
1. Checkout: The main branch of the repository is checked out, allowing for the commit hashes to line up.
|
|
2. Git Log: The log of the Git repository is displayed.
|
|
3. Install create-dmg: The `create-dmg` tool is installed using Homebrew.
|
|
4. Clean Previous Path: The previous PATH environment variable is cleared and restored to its default values.
|
|
5. Setup Conda Caching: The miniconda environment is set up using a caching mechanism for faster workflow execution after the first run.
|
|
6. Setup Miniconda: Miniconda is set up using the `conda-3-9-env-full.yaml` environment file, with channels `conda-forge` and `defaults`, and with the `build_env` environment activated.
|
|
7. Run Poetry: Poetry is used to install the dependencies for the project.
|
|
8. Install PyInstaller: PyInstaller is installed using Poetry.
|
|
9. Poetry Install Portfolio Optimization and Forecasting Toolkits: The portfolio optimization and forecasting toolkits are installed using Poetry.
|
|
10. Install Specific Papermill: A specific version of Papermill is installed using pip.
|
|
11. Build Bundle: The terminal application is built using PyInstaller, with icons and assets copied to the DMG directory.
|
|
12. Create DMG: The DMG file is created using the `create-dmg` tool.
|
|
13. Clean up Build Artifacts: The build artifacts such as the terminal directory and DMG directory are removed.
|
|
14. Save Build Artifact DMG: The DMG file is saved as a build artifact.
|
|
15. Convert & Mount DMG: The DMG file is converted and mounted.
|
|
16. Directory Change: The current directory is changed to the mounted DMG file.
|
|
17. Unmount DMG: The mounted DMG file is unmounted.
|
|
18. Run Integration Tests: The built terminal application is run with integration tests, and the results are displayed.
|
|
|
|
Finally, the integration tests are run and the results are logged. The workflow is configured to run only when triggered by a workflow dispatch event and runs in a concurrent group, with the ability to cancel in-progress jobs.
|
|
|
|
## Nightly Build Workflow
|
|
This code is a GitHub Actions workflow configuration file that is used to trigger other workflows when certain events occur. The main purpose of this workflow is to trigger builds on different platforms when a release is made or a pull request is made to the main branch.
|
|
|
|
This workflow is triggered at UTC+0 daily by the GitHub Action schedule event.
|
|
|
|
The job includes the following steps:
|
|
|
|
1. Trigger Windows Build: This step uses the `aurelien-baudet/workflow-dispatch` action to trigger the windows10_build.yml workflow.
|
|
|
|
2. Trigger macOS Build: This step uses the `aurelien-baudet/workflow-dispatch` action to trigger the m1_macos_build.yml workflow
|
|
|
|
3. Trigger Intel Build: This step uses the `aurelien-baudet/workflow-dispatch` action to trigger the intel_macos_build.yml workflow
|
|
|
|
4. Trigger Docker Build: This step uses the `aurelien-baudet/workflow-dispatch` action to trigger the docker.yml workflow
|
|
|
|
This workflow also uses a concurrency setting that groups the jobs by the workflow and ref, and cancels any in-progress jobs.
|
|
|
|
## Nightly PyPI Publish Workflow
|
|
This workflow is used to publish the latest version of the OpenBB Platform CLI to PyPI. The workflow is triggered at UTC+0 daily by the GitHub Action schedule event.
|
|
|
|
It does this by first updating the `pyproject.toml` file with a pre-determined version string of the form `<currentVersion>.dev<date>`, where `<date>` represents the current day's date as a 8 digit number.
|
|
|
|
Then, the code installs `pypa/build` and uses `python -m build` to create a binary wheel and a source tarball in the `dist/` directory.
|
|
|
|
Finally, it uses the PyPA specific action `gh-action-pypi-publish` to publish the created files to PyPI.
|
|
|
|
## PYPI publish Workflow
|
|
The Github Action code `Deploy to PyPI` is used to deploy a Python project to PyPI (Python Package Index) and TestPyPI, which is a separate package index for testing purposes. The code is triggered on two events:
|
|
|
|
1. Push event: The code is triggered whenever there is a push to the `release/*` and `main` branches.
|
|
|
|
2. Workflow dispatch event: The code can be manually triggered by the workflow dispatch event.
|
|
|
|
The code sets the concurrency to the `group` and the option `cancel-in-progress` is set to `true` to ensure that the running jobs in the same `group` are cancelled in case another job is triggered.
|
|
|
|
The code contains two jobs, `deploy-test-pypi` and `deploy-pypi`, both of which have the same steps with slight variations.
|
|
|
|
The `deploy-test-pypi` job is triggered only if the pushed branch starts with `refs/heads/release/`. This job sets up the Python environment, installs the `build` package using `pip`, builds binary wheel and source tarball using `build`, and finally, publishes the distributions to TestPyPI using the `pypa/gh-action-pypi-publish@release/v1` Github Action. The `password` to access TestPyPI is stored as a secret named `TEST_PYPI_API_TOKEN`.
|
|
|
|
Similarly, the `deploy-pypi` job is triggered only if the pushed branch starts with `refs/heads/main`. This job follows the same steps as `deploy-test-pypi`, but the distributions are published to PyPI instead of TestPyPI. The `password` to access PyPI is stored as a secret named `PYPI_API_TOKEN`.
|
|
|
|
Note: The code uses the `pypa/build` package for building the binary wheel and source tarball, and the `pypa/gh-action-pypi-publish@release/v1` Github Action for publishing the distributions to PyPI and TestPyPI.
|
|
|
|
## Unit Tests Workflow
|
|
This workflow is used to run unit tests on the OpenBB Platform CLI. The workflow is triggered on the following events:
|
|
The events this workflow will respond to are:
|
|
|
|
1. Pull requests that are opened, synchronized, edited, or closed. The pull request must be made to the `develop` or `main` branches.
|
|
|
|
2. Pushes to the `release/*` branches.
|
|
|
|
Each job in the workflow specifies a set of steps that are executed in order.
|
|
|
|
The first job, `check-files-changed`, checks whether there are any changes to certain file types in the repository, such as Python files and lockfiles. If there are changes, then the `check-changes` output variable is set to `true`.
|
|
|
|
The next job, `base-test`, runs a series of tests if `check-changes` is `true` and the base branch of the pull request is `develop`. This job sets up a Python 3.9 environment, installs Poetry, and then runs tests using `pytest`. Finally, it starts the terminal and exits.
|
|
|
|
The next job, `tests-python`, runs tests for different versions of Python (3.8, 3.9, and 3.10) on the `ubuntu-latest` operating system. It sets up the specified Python version, installs Poetry and dependencies, and then runs tests using `pytest`.
|
|
|
|
The next job, `full-test`, uses the GitHub Actions `checkout` action to checkout the code, followed by the `setup-python` action to set up the specified version of Python. Then, the `install-poetry` action is used to install the package manager Poetry, and a cache is set up using the `actions/cache` action to avoid re-installing dependencies. After that, the dependencies are installed using Poetry, and a list of installed packages is displayed. Then, the tests are run using `pytest`, and finally, the `terminal.py` script is started and exited.
|
|
|
|
The last job, `tests-conda`, sets up a Miniconda environment using the `setup-miniconda` action. The environment is specified using a YAML file and is activated. Then, the tests are run.
|
|
|
|
## Windows 10 Build Workflow
|
|
This is a GitHub Actions workflow file that automates the build and testing process for the OpenBB Platform CLI on Windows 10. The workflow consists of two jobs:
|
|
|
|
1. Windows-Build
|
|
2. Build-Exe
|
|
|
|
- The Windows-Build job does the following:
|
|
- Sets up the Windows Git configuration for long file paths.
|
|
- Checks out the repository code.
|
|
- Sets up Python 3.9 and creates an OpenBB environment using poetry.
|
|
- Installs necessary packages and builds the terminal using PyInstaller.
|
|
- Uploads the built artifact to GitHub as an artifact.
|
|
- The Build-Exe job does the following:
|
|
- Sets up the Windows Git configuration for long file paths.
|
|
- Checks out the repository code.
|
|
- Downloads the built artifact from the previous Windows-Build job.
|
|
- Copies the files into an app folder for building the EXE file.
|
|
- Builds the EXE file using NSIS.
|
|
- Uploads the built EXE as an artifact to GitHub.
|
|
- Runs integration tests on the terminal and saves the results to a text file.
|
|
- Uploads the test results summary to Slack.
|
|
- Cleans up previous build files and artifacts.
|
|
|
|
This workflow is triggered by the `workflow_dispatch` event and runs in concurrency with other workflows in the same group, with the ability to cancel in-progress builds. The concurrency group is defined as `${{ github.workflow }}-${{ github.ref }}`. |