mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
40 lines
2.6 KiB
YAML
40 lines
2.6 KiB
YAML
name: Backend Jobs
|
|
|
|
on:
|
|
push:
|
|
# run this workflow when changes are pushed to backend
|
|
paths:
|
|
- "backend/**"
|
|
- ".github/workflows/backend.yaml"
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '14'
|
|
- name: Run Backend tests
|
|
run: |-
|
|
sudo apt-get update
|
|
sudo apt-get install -y curl gcc
|
|
sudo apt-get install -y build-essential
|
|
curl -sSL https://get.docker.com/ | sh
|
|
sudo docker stop $(sudo docker ps -aq) || echo 'No docker containers'
|
|
sudo docker rm $(sudo docker ps -aq) || echo 'No docker containers'
|
|
sudo docker run --name mongo -p 27017:27017 -d mongo:4.2.3
|
|
sudo docker run --name redis -p 6379:6379 -d redis:5.0.7 redis-server
|
|
sudo docker run --name realtime --env-file ./realtime/.env -e PORT=3300 --net=host -d oneuptime/realtime:latest
|
|
sudo docker build -t oneuptime/init-script:3.0.$CI_PIPELINE_IID ./init-script
|
|
sudo docker run -e NODE_ENV=development -e IS_SAAS_SERVICE=true -e IS_TESTING=true --net=host -d oneuptime/init-script:3.0.$CI_PIPELINE_IID
|
|
sudo docker build -t oneuptime/probe:3.0.$CI_PIPELINE_IID ./probe
|
|
sudo docker run --name probe-1 --env-file ./probe/.env -e PORT=3024 -e SERVER_URL=http://localhost:3020 -e PROBE_NAME='Probe 1' -e PROBE_KEY=test-key --net=host -d oneuptime/probe:3.0.$CI_PIPELINE_IID
|
|
sudo docker run --name probe-2 --env-file ./probe/.env -e PORT=3025 -e SERVER_URL=http://localhost:3020 -e PROBE_NAME='Probe 2' -e PROBE_KEY=test-key --net=host -d oneuptime/probe:3.0.$CI_PIPELINE_IID
|
|
sudo docker build -t oneuptime/http-test-server:3.0.$CI_PIPELINE_IID ./http-test-server
|
|
sudo docker run -p 3010:3010 -d oneuptime/http-test-server:3.0.$CI_PIPELINE_IID
|
|
sudo docker ps
|
|
cd backend
|
|
npm ci
|
|
ENCRYPTION_KEY=$ENCRYPTION_KEY TEST_EMAIL_SMTP_PORT=$TEST_EMAIL_SMTP_PORT TEST_EMAIL_SMTP_SERVER=$TEST_EMAIL_SMTP_SERVER TEST_EMAIL=$TEST_EMAIL TEST_EMAIL_NAME=$TEST_EMAIL TEST_EMAIL_PASSWORD=$TEST_EMAIL_PASSWORD IS_SAAS_SERVICE=true IS_TESTING=true DOCKER_UNMASKED_USERNAME=$DOCKER_UNMASKED_USERNAME DOCKER_UNMASKED_PASSWORD=$DOCKER_UNMASKED_PASSWORD DOCKER_SECURITY_SCAN_REGISTRY_URL=$DOCKER_SECURITY_SCAN_REGISTRY_URL DOCKER_SECURITY_SCAN_IMAGE_PATH=$DOCKER_SECURITY_SCAN_IMAGE_PATH DOCKER_SECURITY_SCAN_IMAGE_TAGS=$DOCKER_SECURITY_SCAN_IMAGE_TAGS TEST_UNMASKED_USERNAME=$TEST_UNMASKED_USERNAME TEST_UNMASKED_PASSWORD=$TEST_UNMASKED_PASSWORD TEST_SECURITY_SCAN_REPOSITORY_URL=$TEST_SECURITY_SCAN_REPOSITORY_URL npm test
|