From 0c7a00a3380b781db408f934d79c92a7273faf8a Mon Sep 17 00:00:00 2001 From: Eric O Asante Date: Sat, 2 Nov 2024 18:26:43 -0400 Subject: [PATCH] Update ms5.yaml --- .github/workflows/ms5.yaml | 50 ++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ms5.yaml b/.github/workflows/ms5.yaml index 3fb8f72..a550af1 100644 --- a/.github/workflows/ms5.yaml +++ b/.github/workflows/ms5.yaml @@ -1,13 +1,53 @@ -name: Simple CI/CD Pipeline - +name: API CI/CD +# This is a trigger for any push to the repo, and tells github when the actions have to be run +# Every time we do a push, the action will be executed +# The actions should be run only when there is a push from main and develop on: push: branches: - MileStone5eric +#Tells github actions what to execute when trigger condition is met jobs: - do-nothing: + # Each job runs in parallel + tests: #This is the job name + + # runs-on indicates which GitHub "Runners" will run this CICD pipeline + # For all CSE-2102 repos, just use the following line as is runs-on: self-hosted + # This next block allows you to run this ENTIRE job on different python versions + strategy: + matrix: + #python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8"] + + # Steps are run in sequence in this job. If one step fails, the entire job fails. steps: - - name: Do nothing - run: echo "This is a simple CI/CDk pipeline that does nothing." + # Use this next line to pull your repo into the Docker container running the job + - uses: actions/checkout@v3 + # This block sets up the python version + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + # Pylint is a static code analysis tool. Use this block as is to install pylint + # in the Docker container running the job + - name: Install pylint + run: | + python -m pip install --upgrade pip + pip install pylint + # Run pylint on your pulled code in the Docker container running the job + - name: Analysing the code with pylint + run: | + pylint $(git ls-files 'hw002/*.py') + # Pytest is for unit testing your python code. Use this block as is to + # install pytest in the Docker container running the job + - name: Install pytest + run: | + python -m pip install --upgrade pip + pip install pytest + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + # Run pytest on your pulled codebase + - name: Test with pytest + run: | + pytest