Skip to content
Snippets Groups Projects
Commit fda17121 authored by Andrew Kapuscinski's avatar Andrew Kapuscinski
Browse files

Added testing stage and jobs to run unit tests for our services

Added run-tests.sh script to each service to run our package tester to enable us
to run unit tests from the cmdline and CI
Refactored makefile's make test script to call run-tests.sh in each image
parent 81ebe91a
No related branches found
No related tags found
1 merge request!30Added testing stage and jobs to run unit tests for our services
Pipeline #345 passed
......@@ -2,6 +2,7 @@ stages:
- build-base
- push-base
- build-dev
# - unit-test-dev # Commented out until tests are refactored
- push-dev
- clean-images
# - deploy-dev
......@@ -9,6 +10,7 @@ stages:
variables:
PROJECT_NAME: "workspaces"
DEFAULT_DEPLOY_ENV: "dev"
image: docker:19.03.12
......@@ -59,9 +61,31 @@ build dev capability:
SERVICE_NAME: "capability"
extends: .build
.unit-test:
script:
- docker run ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA} ./bin/run-tests.sh
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: always
# Test Stages
## Test Stages ##
# Unit Tests
# hidden job until tests are refactored
.unit test dev workflow:
stage: unit-test-dev
variables:
SERVICE_NAME: "workflow"
extends: .unit-test
# hidden job until tests are refactored
.unit test dev capability:
stage: unit-test-dev
variables:
SERVICE_NAME: "capability"
extends: .unit-test
# Push Stages
push dev workflow:
......
......@@ -8,15 +8,15 @@ check-build: docker-base docker-dev-images-locally test-dev
# Run tests on Dockerfile.dev images
.PHONY: test-dev
test-dev: $(shared-packages) $(app-packages-capability) $(app-packages-workflow)
docker run nrao:workflow package-tester -v $(shared-packages) $(app-packages-workflow)
docker run nrao:capability package-tester -v $(shared-packages) $(app-packages-capability)
test-dev:
docker run nrao:workflow ./bin/run-tests.sh
docker run nrao:capability ./bin/run-tests.sh
# Run tests on Dockerfile.local containers
.PHONY: test
test: $(shared-packages) $(app-packages-capability) $(app-packages-workflow)
docker exec workspaces_capability_1 package-tester -v $(shared-packages) $(app-packages-capability)
docker exec workspaces_workflow_1 package-tester -v $(shared-packages) $(app-packages-workflow)
test:
docker exec workspaces_workflow_1 ./bin/run-tests.sh
docker exec workspaces_capability_1 ./bin/run-tests.sh
# Setup local development environment
.PHONY: dev
......@@ -37,8 +37,3 @@ docker-dev-images-locally:
.PHONY: docker-base
docker-base:
docker build -t marconi.aoc.nrao.edu/ops/base:workspaces -f Dockerfile.base .
# Packages to test
shared-packages = shared.channels shared.schema shared.workspaces
app-packages-workflow = apps.cli.executables.vulture apps.cli.executables.null apps.cli.utilities.wf_monitor
app-packages-capability = apps.cli.utilities.wf_monitor
......@@ -17,15 +17,5 @@
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
- if: $CI_COMMIT_MESSAGE =~ /\A(?i)Revert/
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- .gitlab-ci.yml
- services/${SERVICE_NAME}/**/*
- apps/cli/**/*.{py,sh}
- shared/**/*.{py,sh}
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /\A(?i)-ops/'
changes:
- Dockerfile.base
\ No newline at end of file
when: always
\ No newline at end of file
......@@ -10,9 +10,4 @@
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- .gitlab-ci.yml
- services/${SERVICE_NAME}/**/*
- apps/cli/**/*.{py,sh}
- shared/**/*.{py,sh}
when: always
\ No newline at end of file
......@@ -6,9 +6,4 @@
- docker push ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_DEFAULT_BRANCH}
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
changes:
- .gitlab-ci.yml
- services/${SERVICE_NAME}/**/*
- apps/cli/**/*.{py,sh}
- shared/**/*.{py,sh}
when: always
\ No newline at end of file
.unit-test:
script:
- docker run ${REGISTRY_URL}/${PROJECT_NAME}/${SERVICE_NAME}:${CI_COMMIT_SHORT_SHA} ./bin/run-tests.sh
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: always
\ No newline at end of file
#!/bin/bash
# Set failfast
# set -e
# set -o pipefail
echo "Happy Testing!"
pkgs=($(sed -n "s/\-e .\///p" requirements.txt | tr "\n" " "))
for pkg in "${pkgs[@]}"
do
printf "\n --- Running: package-tester -v %s --- \n" $pkg
package-tester -v $pkg
done
echo "Package Tester has completed."
\ No newline at end of file
#!/bin/bash
# Set failfast
# set -e
# set -o pipefail
echo "Happy Testing!"
pkgs=($(sed -n "s/\-e .\///p" requirements.txt | tr "\n" " "))
for pkg in "${pkgs[@]}"
do
printf "\n --- Running: package-tester -v %s --- \n" $pkg
package-tester -v $pkg
done
echo "Package Tester has completed."
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment