From 8450227035ec1fd2db8fff4e584c1a61a2055535 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Fri, 11 Nov 2022 08:18:53 +0000 Subject: [PATCH] update pahse1.md --- admin/cipipeline/phase1.drawio.png | Bin 41683 -> 42755 bytes admin/cipipeline/phase1.md | 23 ++++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/admin/cipipeline/phase1.drawio.png b/admin/cipipeline/phase1.drawio.png index 345eda10059a8630d216ba84086cbc960cf2b884..6989a35b6aa0a9a1642325ce66430faf8c50f36c 100644 GIT binary patch literal 42755 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 diff --git a/admin/cipipeline/phase1.md b/admin/cipipeline/phase1.md index d8d900b..046ee84 100644 --- a/admin/cipipeline/phase1.md +++ b/admin/cipipeline/phase1.md @@ -1,8 +1,12 @@ # CI/CD Phase 1 +## Overall Pipeline Architecture + +Rather than create one large pipeline with many steps which increases complexity, we decided to create many small independent pipelines which work in parallel to conduct code quality checking. Using this strategy, if any one pipeline has issues, we can still continue development without delay, and the quality of code is likely to remain high. + ## Overview of Pipeline Features -We've identified 4 major features which we definitely want to implement in the CI/CD pipeline. +We've identified 5 major features which we definitely want to implement in the CI/CD pipeline. - Deployment - Unit Testing @@ -10,6 +14,23 @@ We've identified 4 major features which we definitely want to implement in the C - End To End Validation - Manual Validation +We created this diagram to demonstrate our strategy of multiple simple pipelines. + +![Pipeline Diagram](phase1.drawio.png) + ## Finished Features and Implementation +So far the features listed below have been completed to some degree: + +- Deployment + - Implemented: action triggered on any push to main, uses the github pages action to publish the app + - ToDo: Add minifications ste between trigger and github pages action +- Unit Testing + - Implemented: action triggers on any PR, uses mocha to perform unit testing on core components + - ToDo: trigger workflow only on certain PRs which relate to JS code +- Linting (JS) + - Implemented: ction triggers on any PR, uses eslint to perform style enforcement on all JS components + - ToDo: trigger workflow only on certain PRs which relate to JS code + + ## Planned Features and Timeline \ No newline at end of file