-
Couldn't load subscription status.
- Fork 134
Description
Current Status
Currently, there are some GitHub actions to perform linting (PsScriptAnalyzer) and for testing (Pester). Actually these two actions are quite old and are using deprecated flags, causing actions to print warnings. Those actions should be reviewed and updated to avoid lack of support. Moreover, I'm currently using several local scripts to automate updates to configuration files, JSON datasets, and other relevant parts of Monkey365. As a solo dev, automation is the key, so to reduce manual errors, improve code quality and accelerate releases, a new Pipeline should be designed in a way that allows for security, reliability and scalability.
-
Why this improvement is needed?
We should keep the main codebase clean and consistent across the project, This ensures that the codebase remains clean and free of issues. -
What are the benefits?
A new pipeline will help to automate the process of checking code quality during the CI (Continuous Integration) pipeline. It will also help catch potential issues in early stages, minimizing the effect of bugs in the main branch.
Desired Status
Create templates and reusable workflows to enforce security best practices across all internal modules and minimize human error. While the code will remain in GitHub, the updated strategy will incorporate Azure Pipelines to test and validate every pull request or commit. Azure Pipelines will also be responsible for managing a multi-stage release pipeline spanning three environments. As the linting and testing processes are being migrated to Azure DevOps, existing GitHub Actions for Pester and PSScriptAnalyzer will soon be deprecated. This transition aims to keep all GitHub repositories consistently up to date.
The strategy includes creating two dedicated repositories: one for HTML resources and the other one for storing JSON rules and rulesets. GitHub Actions will be configured to automatically initiate release workflows each time a new commit is made, streamlining the deployment process. Azure Pipelines will be used to perform secret scanning and detect dependency-related errors.