aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/deploy.yml15
-rw-r--r--.github/workflows/on-commit.yml50
-rw-r--r--Makefile80
3 files changed, 90 insertions, 55 deletions
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 372d0b3..db51d20 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -1,19 +1,24 @@
name: deploy-terraform
on:
- push:
+ pull-request:
branches:
- - test-ci/** # Adjust the branch based on our deployment strategy
+ - main
+ pull:
+ branches:
+ - main
+
jobs:
deploy-terraform:
name: Deploy Terraform
runs-on: ubuntu-latest
- environment: test-env
+ #needs: run-checks (must ref on-commit.yml file)
+ environment: production
steps:
- name: Checkout Repo
uses: actions/checkout@v4
-
+
- name: Install Terraform
uses: hashicorp/setup-terraform@v3
@@ -34,4 +39,4 @@ jobs:
- name: Terraform Apply
working-directory: terraform
- run: terraform apply --auto-approve \ No newline at end of file
+ run: terraform apply --auto-approve
diff --git a/.github/workflows/on-commit.yml b/.github/workflows/on-commit.yml
deleted file mode 100644
index fd9ffb8..0000000
--- a/.github/workflows/on-commit.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: commit-qc-checks
-
-on:
- push:
- branches-ignore:
- - 'main'
-
-jobs:
- python-quality-checks:
- runs-on: ubuntu-latest
- steps:
- - uses : actions/checkout@v4
- - name : 'Python: Setup'
- uses : actions/setup-python@v5
- with:
- python-version: 3.11
- - name : 'Python: Install Dependencies'
- run: |
- python -m pip install --upgrade pip
- pip install flake8 pylint black bandit safety
- continue-on-error: true
- - name : 'Python: Linting'
- run: |
- flake8 .
- find . -name "*.py" | xargs pylint
- continue-on-error: true
- - name : 'Python: Formatting'
- run: |
- black --check .
- continue-on-error: true
- terraform-quality-checks:
- runs-on: ubuntu-latest
- steps:
- - uses : actions/checkout@v4
- - name: 'Terraform: Setup'
- uses: hashicorp/setup-terraform@v3
- with:
- terraform_version: latest
- - name: 'Terraform: Formatting'
- working-directory: terraform
- run: terraform fmt -check -recursive
- continue-on-error: true
- - name: 'Terraform: Initialise'
- working-directory: terraform
- run: terraform init -backend=false
- continue-on-error: true
- - name: 'Terraform: Validate'
- working-directory: terraform
- run: terraform validate
- continue-on-error: true \ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..077cd98
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,80 @@
+##############################################
+# #
+# MAKEFILE TO BUILD THE PROJECT #
+# #
+##############################################
+
+PROJECT_NAME = de-project-bentley
+REGION = eu-west-2
+PYTHON_INTERPRETER = python
+WD=$(shell pwd)
+PYTHONPATH=${WD}
+SHELL := /bin/bash
+PROFILE = default
+PIP:=pip
+
+## PYTHON INTERPRETER ENVIRONMENT
+create-environment:
+ @echo ">>> About to create environment: $(PROJECT_NAME)..."
+ @echo ">>> check python3 version"
+ ( \
+ $(PYTHON_INTERPRETER) --version; \
+ )
+ @echo ">>> Setting up VirtualEnv."
+ ( \
+ $(PIP) install -q virtualenv virtualenvwrapper; \
+ virtualenv venv --python=$(PYTHON_INTERPRETER); \
+ )
+
+ACTIVATE_ENV := source venv/bin/activate
+
+# Execute python related functionalities from within the project's environment
+define execute_in_env
+ $(ACTIVATE_ENV) && $1
+endef
+
+## Build the environment requirements
+requirements: create-environment
+ $(call execute_in_env, $(PIP) install -r ./requirements.txt)
+
+# Set Up
+## Install bandit
+bandit:
+ $(call execute_in_env, $(PIP) install bandit)
+
+## Install safety
+safety:
+ $(call execute_in_env, $(PIP) install safety)
+
+## Install black
+black:
+ $(call execute_in_env, $(PIP) install black)
+
+## Install coverage
+coverage:
+ $(call execute_in_env, $(PIP) install coverage)
+
+## Set up dev requirements (bandit, safety, black)
+dev-setup: bandit safety black coverage
+
+# Build / Run
+
+## Run the security test (bandit + safety)
+security-test:
+ $(call execute_in_env, safety check -r ./requirements.txt)
+ $(call execute_in_env, bandit -lll */*.py *c/*/*.py)
+
+## Run the black code check
+run-black:
+ $(call execute_in_env, black ./src/*/*.py ./test/*/*.py)
+
+## Run the unit tests
+unit-test:
+ $(call execute_in_env, PYTHONPATH=${PYTHONPATH} pytest -v)
+
+## Run the coverage check
+check-coverage:
+ $(call execute_in_env, PYTHONPATH=${PYTHONPATH} pytest --cov=src test/)
+
+## Run all checks
+run-checks: security-test run-black unit-test check-coverage
git.ajschof.me — hosted by ajschofield — powered by cgit