Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
ayanmasood committed Sep 17, 2023
1 parent 9fe5b17 commit 3e69d70
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions docs/ArtGallery/Deployment/CICDPipelineOverview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
## CI/CD Pipeline Integration with GitHub Actions

**Author:** Ayan Masood, [amasood@deakin.edu.au](mailto:amasood@deakin.edu.au)

**Introduction**

Integration of a continuous integration (CI) and deployment (CD) pipeline involves automation of
different processes such as building, testing and deploying of code and/or documentation. This
process ensure that code quality remains consistent and overall collaboration is more polished and
refined due to error and bug identification.

**Creating a Configuration File (Workflow File)**

To define checks related to this process to allow for automation a configuration file containing all
identified checks needed for this project should be defined. This file contains different
preexisting tools the team can use to perform tests on incoming code/documentation when merging data
into the repository through a push request. The configuration file has to be included inside the
main repository in a specific location to allow for automatic integration to the project. This can
also be customized to run on any type of event; pull, push or commit due to it allowing easy
modification of steps and processes.

**Using Templates**

The user can also create CI/CD workflows by using provided template by GitHub Actions. This contains
different tests already coded to perform various activities and can be easily modified to be used
for project purposes. Each template comes with predefined steps for common tasks like building,
deploying, testing, etc. These tests can be used to simplify implementation as well as reduce the
time taken for added new steps in the configuration file.

**Tests required in Pipeline**

- Code and Documentation Style

Ensure consistent layout of code and documentation throughout the project.

- Security Tests

Test for any threats or vulnerabilities in code provided.

- Compatibility Errors

Help to review any issues with compatibility of code being input

- Performance Optimization

Evaluate performance and find areas of optimization.

- Integration Tests

Check to see provided resources are able to interact with integrated parts of the system (API’s,
Databases, etc.)

- Deployment Tests

These relate to all resources which affect deployment of application to ensure every change which
directly affects the application is of standard and no compilation errors occur.

**Conclusion**

Through incorporating CI and CD into the project automation of tests and identification of errors
can be simplified. It minimizes the need for manual testing allowing for less code related errors
and troubleshooting time required. This helps to develop and commit constant changes to the
application.

0 comments on commit 3e69d70

Please sign in to comment.