silverhack / silverhack/monkey365

Improve CI/CD Pipeline

Open
#153 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation enhancement
Dominant language
PowerShell
Stars
1.3k
Forks
140
PR merge metrics
No merged PRs in 30d

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing GitHub Actions for Pester and PSScriptAnalyzer, along with the local scripts that update configuration files and JSON datasets. Define the reusable workflows and Azure Pipelines stages needed for pull-request validation, secret and dependency scanning, and multi-environment releases. Done means the migration plan and automation cover the stated checks and release flow without the deprecated GitHub Actions.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, github-actions, powershell
Domain
ci-cd, devops, release, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.