CI - use GitLab instead of Travis
This commit is contained in:
parent
1ad847c857
commit
b411d4d547
60
.gitlab-ci.yml
Normal file
60
.gitlab-ci.yml
Normal file
@ -0,0 +1,60 @@
|
||||
image: python:3.8
|
||||
|
||||
variables:
|
||||
POSTGRES_DB: fittrackee_test
|
||||
POSTGRES_USER: fittrackee
|
||||
POSTGRES_PASSWORD: fittrackee
|
||||
POSTGRES_HOST: postgres
|
||||
APP_SETTINGS: fittrackee_api.config.TestingConfig
|
||||
DATABASE_TEST_URL: postgres://fittrackee:fittrackee@postgres:5432/fittrackee_test
|
||||
EMAIL_URL: smtp://none:none@0.0.0.0:1025
|
||||
FLASK_APP: fittrackee_api/server.py
|
||||
SENDER_EMAIL: fittrackee@example.com
|
||||
|
||||
services:
|
||||
- name: postgres:latest
|
||||
alias: postgres
|
||||
|
||||
stages:
|
||||
- tests
|
||||
- selenium
|
||||
|
||||
.python:
|
||||
stage: tests
|
||||
before_script:
|
||||
- pip install --quiet poetry
|
||||
- poetry config virtualenvs.create false
|
||||
- poetry install --no-interaction --quiet
|
||||
script:
|
||||
- pytest fittrackee_api -p no:warnings --cov fittrackee_api --cov-report term-missing
|
||||
|
||||
lint:
|
||||
extends: .python
|
||||
script:
|
||||
- pytest --flake8 --isort --black -m "flake8 or isort or black" fittrackee_api e2e --ignore=fittrackee_api/migrations
|
||||
|
||||
python-3.7:
|
||||
extends: .python
|
||||
image: python:3.7
|
||||
|
||||
python-3.8:
|
||||
extends: .python
|
||||
|
||||
firefox:
|
||||
stage: selenium
|
||||
services:
|
||||
- name: postgres:latest
|
||||
alias: postgres
|
||||
- name: selenium/standalone-firefox
|
||||
alias: selenium
|
||||
before_script:
|
||||
- pip install --quiet poetry
|
||||
- poetry config virtualenvs.create false
|
||||
- poetry install --no-interaction --quiet
|
||||
- flask db upgrade --directory fittrackee_api/migrations
|
||||
- flask initdata
|
||||
- setsid nohup flask run --with-threads -h 0.0.0.0 -p 5000 >> nohup.out 2>&1 &
|
||||
- export TEST_APP_URL=http://$(hostname --ip-address):5000
|
||||
- sleep 5
|
||||
script:
|
||||
- pytest e2e --driver Remote --capability browserName firefox --host selenium --port 4444
|
49
.travis.yml
49
.travis.yml
@ -1,49 +0,0 @@
|
||||
language: node_js
|
||||
node_js: '13'
|
||||
|
||||
dist: trusty
|
||||
sudo: required
|
||||
|
||||
addons:
|
||||
chrome: stable
|
||||
apt:
|
||||
update: true
|
||||
packages:
|
||||
- dpkg
|
||||
- fluxbox
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
env:
|
||||
global:
|
||||
- DOCKER_COMPOSE_VERSION=1.22.0
|
||||
|
||||
before_install:
|
||||
- stty cols 80
|
||||
- sudo rm /usr/local/bin/docker-compose
|
||||
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
- chmod +x docker-compose
|
||||
- sudo mv docker-compose /usr/local/bin
|
||||
|
||||
before_script:
|
||||
- export DATABASE_TEST_URL=postgres://postgres:@localhost:5432/fittrackee_test
|
||||
- export APP_SETTINGS=fittrackee_api.config.TestingConfig
|
||||
- export REACT_APP_API_URL=http://127.0.0.1
|
||||
- export NODE_ENV=development
|
||||
- export TEST_URL=http://127.0.0.1
|
||||
- export UI_URL=http://127.0.0.1:3000
|
||||
- export EMAIL_URL=smtp://none:none@0.0.0.0:1025
|
||||
- export SENDER_EMAIL=fittrackee@example.com
|
||||
- export DISPLAY=:99.0
|
||||
- export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi)
|
||||
- sh -e /etc/init.d/xvfb start
|
||||
- sleep 3
|
||||
- fluxbox >/dev/null 2>&1 &
|
||||
- docker-compose -f docker-compose-ci.yml up --build -d
|
||||
|
||||
script:
|
||||
- sh test.sh
|
||||
|
||||
after_script:
|
||||
- docker-compose down
|
2
Makefile
2
Makefile
@ -6,7 +6,7 @@ make-p:
|
||||
# Launch all P targets in parallel and exit as soon as one exits.
|
||||
set -m; (for p in $(P); do ($(MAKE) $$p || kill 0)& done; wait)
|
||||
|
||||
build-client:
|
||||
build-client: lint-react
|
||||
$(NPM) build
|
||||
|
||||
clean-install:
|
||||
|
@ -1,59 +0,0 @@
|
||||
version: '3.3'
|
||||
|
||||
services:
|
||||
|
||||
fittrackee-db:
|
||||
container_name: fittrackee-db
|
||||
build: https://github.com/SamR1/FitTrackee.git#${BRANCH}:fittrackee_api/db
|
||||
ports:
|
||||
- 5435:5432
|
||||
environment:
|
||||
- POSTGRES_USER=postgres
|
||||
- POSTGRES_PASSWORD=postgres
|
||||
|
||||
fittrackee-api:
|
||||
container_name: fittrackee-api
|
||||
build: https://github.com/SamR1/FitTrackee.git#${BRANCH}:fittrackee_api
|
||||
ports:
|
||||
- 5001:5000
|
||||
environment:
|
||||
- DATABASE_URL=postgres://postgres:postgres@fittrackee-db:5432/fittrackee
|
||||
- DATABASE_TEST_URL=postgres://postgres:postgres@fittrackee-db:5432/fittrackee_test
|
||||
- UI_URL=http://127.0.0.1:3000
|
||||
- EMAIL_URL=smtp://none:none@0.0.0.0:1025
|
||||
- SENDER_EMAIL=fittrackee@example.com
|
||||
- FLASK_APP=server.py
|
||||
- FLASK_DEBUG=1
|
||||
- APP_SETTINGS=fittrackee_api.config.TestingConfig
|
||||
depends_on:
|
||||
- fittrackee-db
|
||||
links:
|
||||
- fittrackee-db
|
||||
|
||||
fittrackee-client:
|
||||
container_name: fittrackee-client
|
||||
build:
|
||||
context: https://github.com/SamR1/FitTrackee.git#${BRANCH}
|
||||
dockerfile: ./fittrackee_client/Dockerfile
|
||||
args:
|
||||
- NODE_ENV=development
|
||||
- REACT_APP_API_URL=${REACT_APP_API_URL}
|
||||
- CI=true
|
||||
ports:
|
||||
- 3007:3000
|
||||
depends_on:
|
||||
- fittrackee-api
|
||||
links:
|
||||
- fittrackee-api
|
||||
|
||||
nginx:
|
||||
container_name: nginx
|
||||
build: ./nginx
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
depends_on:
|
||||
- fittrackee-api
|
||||
- fittrackee-client
|
||||
links:
|
||||
- fittrackee-api
|
Loading…
Reference in New Issue
Block a user