Merge pull request #1 from compose-viz/ci

ci: init
This commit is contained in:
Xyphuz 2022-05-03 22:05:26 +08:00 committed by GitHub
commit b713da65c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
67 changed files with 2015 additions and 0 deletions

95
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,95 @@
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
- name: Switch to Current Branch
run: git checkout ${{ env.BRANCH }}
- name: Setup Python 3.10.4
uses: actions/setup-python@v3
with:
python-version: '3.10.4'
- name: Validate Test Files
run: |
docker-compose -f tests/in/000001.yaml config -q
docker-compose -f tests/in/000010.yaml config -q
docker-compose -f tests/in/000011.yaml config -q
docker-compose -f tests/in/000100.yaml config -q
docker-compose -f tests/in/000101.yaml config -q
docker-compose -f tests/in/000110.yaml config -q
docker-compose -f tests/in/000111.yaml config -q
docker-compose -f tests/in/001000.yaml config -q
docker-compose -f tests/in/001001.yaml config -q
docker-compose -f tests/in/001010.yaml config -q
docker-compose -f tests/in/001011.yaml config -q
docker-compose -f tests/in/001100.yaml config -q
docker-compose -f tests/in/001101.yaml config -q
docker-compose -f tests/in/001110.yaml config -q
docker-compose -f tests/in/001111.yaml config -q
docker-compose -f tests/in/010000.yaml config -q
docker-compose -f tests/in/010001.yaml config -q
docker-compose -f tests/in/010010.yaml config -q
docker-compose -f tests/in/010011.yaml config -q
docker-compose -f tests/in/010100.yaml config -q
docker-compose -f tests/in/010101.yaml config -q
docker-compose -f tests/in/010110.yaml config -q
docker-compose -f tests/in/010111.yaml config -q
docker-compose -f tests/in/011000.yaml config -q
docker-compose -f tests/in/011001.yaml config -q
docker-compose -f tests/in/011010.yaml config -q
docker-compose -f tests/in/011011.yaml config -q
docker-compose -f tests/in/011100.yaml config -q
docker-compose -f tests/in/011101.yaml config -q
docker-compose -f tests/in/011110.yaml config -q
docker-compose -f tests/in/011111.yaml config -q
docker-compose -f tests/in/100000.yaml config -q
docker-compose -f tests/in/100001.yaml config -q
docker-compose -f tests/in/100010.yaml config -q
docker-compose -f tests/in/100011.yaml config -q
docker-compose -f tests/in/100100.yaml config -q
docker-compose -f tests/in/100101.yaml config -q
docker-compose -f tests/in/100110.yaml config -q
docker-compose -f tests/in/100111.yaml config -q
docker-compose -f tests/in/101000.yaml config -q
docker-compose -f tests/in/101001.yaml config -q
docker-compose -f tests/in/101010.yaml config -q
docker-compose -f tests/in/101011.yaml config -q
docker-compose -f tests/in/101100.yaml config -q
docker-compose -f tests/in/101101.yaml config -q
docker-compose -f tests/in/101110.yaml config -q
docker-compose -f tests/in/101111.yaml config -q
docker-compose -f tests/in/110000.yaml config -q
docker-compose -f tests/in/110001.yaml config -q
docker-compose -f tests/in/110010.yaml config -q
docker-compose -f tests/in/110011.yaml config -q
docker-compose -f tests/in/110100.yaml config -q
docker-compose -f tests/in/110101.yaml config -q
docker-compose -f tests/in/110110.yaml config -q
docker-compose -f tests/in/110111.yaml config -q
docker-compose -f tests/in/111000.yaml config -q
docker-compose -f tests/in/111001.yaml config -q
docker-compose -f tests/in/111010.yaml config -q
docker-compose -f tests/in/111011.yaml config -q
docker-compose -f tests/in/111100.yaml config -q
docker-compose -f tests/in/111101.yaml config -q
docker-compose -f tests/in/111110.yaml config -q
docker-compose -f tests/in/111111.yaml config -q
- name: Validate Custom Input File
run: |
pip install pytest
pip install pytest-cov
pytest
python .\tests\test_validate_input_file.py .\tests\validate_input_file.py .\tests\in\docker-compose.yaml

26
tests/in/000001.yaml Normal file
View file

@ -0,0 +1,26 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
networks:
front-tier:
back-tier:
admin:

11
tests/in/000010.yaml Normal file
View file

@ -0,0 +1,11 @@
services:
base:
image: busybox
user: root
common:
image: busybox
extends:
service: base
cli:
extends:
service: common

30
tests/in/000011.yaml Normal file
View file

@ -0,0 +1,30 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
extends:
service: frontend
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
extends:
service: frontend
networks:
front-tier:
back-tier:
admin:

8
tests/in/000100.yaml Normal file
View file

@ -0,0 +1,8 @@
version: "3.9"
services:
web:
build: .
ports:
- "8000:5000"
redis:
image: "redis:alpine"

32
tests/in/000101.yaml Normal file
View file

@ -0,0 +1,32 @@
services:
frontend:
image: awesome/webapp
ports:
- "8000:5000"
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
ports:
- "8000:5001"
networks:
- admin
backend:
image: awesome/backend
ports:
- "8000:5010"
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
networks:
front-tier:
back-tier:
admin:

17
tests/in/000110.yaml Normal file
View file

@ -0,0 +1,17 @@
services:
frontend:
image: awesome/webapp
ports:
- "8000:5000"
monitoring:
image: awesome/monitoring
extends:
service: frontend
backend:
image: awesome/backend
extends:
service: frontend
ports:
- "8000:5001"

34
tests/in/000111.yaml Normal file
View file

@ -0,0 +1,34 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
ports:
- "8000:5000"
monitoring:
image: awesome/monitoring
networks:
- admin
extends:
service: frontend
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
extends:
service: frontend
ports:
- "8000:5001"
networks:
front-tier:
back-tier:
admin:

10
tests/in/001000.yaml Normal file
View file

@ -0,0 +1,10 @@
services:
web:
build: .
depends_on:
- db
- redis
redis:
image: redis
db:
image: postgres

29
tests/in/001001.yaml Normal file
View file

@ -0,0 +1,29 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
depends_on:
- monitoring
- backend
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
networks:
front-tier:
back-tier:
admin:

12
tests/in/001010.yaml Normal file
View file

@ -0,0 +1,12 @@
services:
web:
build: .
depends_on:
- db
- redis
extends:
service: redis
redis:
image: redis
db:
image: postgres

31
tests/in/001011.yaml Normal file
View file

@ -0,0 +1,31 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
depends_on:
- monitoring
- backend
extends:
service: backend
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
networks:
front-tier:
back-tier:
admin:

17
tests/in/001100.yaml Normal file
View file

@ -0,0 +1,17 @@
services:
frontend:
image: awesome/webapp
ports:
- "8000:5000"
monitoring:
image: awesome/monitoring
depends_on:
- backend
ports:
- "8000:5010"
backend:
image: awesome/backend
ports:
- "8000:5001"

30
tests/in/001101.yaml Normal file
View file

@ -0,0 +1,30 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
depends_on:
- backend
ports:
- "8000:5010"
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
networks:
front-tier:
back-tier:
admin:

21
tests/in/001110.yaml Normal file
View file

@ -0,0 +1,21 @@
services:
frontend:
image: awesome/webapp
ports:
- "8000:5000"
monitoring:
image: awesome/monitoring
depends_on:
- backend
extends:
service: frontend
ports:
- "8000:5010"
backend:
image: awesome/backend
extends:
service: frontend
ports:
- "8000:5001"

32
tests/in/001111.yaml Normal file
View file

@ -0,0 +1,32 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
depends_on:
- backend
extends:
service: frontend
ports:
- "8000:5010"
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
networks:
front-tier:
back-tier:
admin:

15
tests/in/010000.yaml Normal file
View file

@ -0,0 +1,15 @@
services:
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
volumes:
db-data:

37
tests/in/010001.yaml Normal file
View file

@ -0,0 +1,37 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

13
tests/in/010010.yaml Normal file
View file

@ -0,0 +1,13 @@
services:
common:
image: busybox
volumes:
- common-volume:/var/lib/backup/data:rw
cli:
extends:
service: common
volumes:
- cli-volume:/var/lib/backup/data:ro
volumes:
common-volume:
cli-volume:

39
tests/in/010011.yaml Normal file
View file

@ -0,0 +1,39 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
extends:
service: monitoring
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

16
tests/in/010100.yaml Normal file
View file

@ -0,0 +1,16 @@
services:
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
ports:
- "8000:5000"
volumes:
db-data:

39
tests/in/010101.yaml Normal file
View file

@ -0,0 +1,39 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
ports:
- "8000:5000"
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

24
tests/in/010110.yaml Normal file
View file

@ -0,0 +1,24 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
extends:
service: monitoring
ports:
- "8000:5000"
volumes:
db-data:

41
tests/in/010111.yaml Normal file
View file

@ -0,0 +1,41 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
extends:
service: monitoring
ports:
- "8000:5000"
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

22
tests/in/011000.yaml Normal file
View file

@ -0,0 +1,22 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
depends_on:
- backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
backend:
image: awesome/backend
volumes:
db-data:

40
tests/in/011001.yaml Normal file
View file

@ -0,0 +1,40 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

26
tests/in/011010.yaml Normal file
View file

@ -0,0 +1,26 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
volumes:
db-data:

42
tests/in/011011.yaml Normal file
View file

@ -0,0 +1,42 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

28
tests/in/011100.yaml Normal file
View file

@ -0,0 +1,28 @@
services:
frontend:
image: awesome/webapp
ports:
- "8000:5000"
monitoring:
image: awesome/monitoring
depends_on:
- backend
ports:
- "8000:5010"
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
backend:
image: awesome/backend
ports:
- "8000:5001"
volumes:
db-data:

74
tests/in/011101.yaml Normal file
View file

@ -0,0 +1,74 @@
services:
vote:
build: ./
# use python rather than gunicorn for local dev
command: python app.py
depends_on:
redis:
condition: service_healthy
volumes:
- app
ports:
- "5000:80"
networks:
- front-tier
- back-tier
result:
build: ./
# use nodemon rather than node for local dev
command: nodemon server.js
depends_on:
db:
condition: service_healthy
volumes:
- app
ports:
- "5001:80"
- "5858:5858"
networks:
- front-tier
- back-tier
worker:
build:
context: ./
depends_on:
redis:
condition: service_healthy
db:
condition: service_healthy
networks:
- back-tier
redis:
image: redis:5.0-alpine3.10
volumes:
- "./healthchecks:/healthchecks"
healthcheck:
test: /healthchecks/redis.sh
interval: "5s"
ports: ["6379"]
networks:
- back-tier
db:
image: postgres:9.4
environment:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "postgres"
volumes:
- "db-data:/var/lib/postgresql/data"
- "./healthchecks:/healthchecks"
healthcheck:
test: /healthchecks/postgres.sh
interval: "5s"
networks:
- back-tier
volumes:
db-data:
networks:
front-tier:
back-tier:

30
tests/in/011110.yaml Normal file
View file

@ -0,0 +1,30 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
ports:
- "8000:5010"
volumes:
db-data:

44
tests/in/011111.yaml Normal file
View file

@ -0,0 +1,44 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
ports:
- "8000:5010"
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

9
tests/in/100000.yaml Normal file
View file

@ -0,0 +1,9 @@
version: "3.9"
services:
web:
build: .
links:
- "db:database"
db:
image: postgres

31
tests/in/100001.yaml Normal file
View file

@ -0,0 +1,31 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

16
tests/in/100010.yaml Normal file
View file

@ -0,0 +1,16 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
extends:
service: frontend
links:
- "db:database"
db:
image: postgres

33
tests/in/100011.yaml Normal file
View file

@ -0,0 +1,33 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
extends:
service: frontend
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

16
tests/in/100100.yaml Normal file
View file

@ -0,0 +1,16 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres

33
tests/in/100101.yaml Normal file
View file

@ -0,0 +1,33 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

18
tests/in/100110.yaml Normal file
View file

@ -0,0 +1,18 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres

35
tests/in/100111.yaml Normal file
View file

@ -0,0 +1,35 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

16
tests/in/101000.yaml Normal file
View file

@ -0,0 +1,16 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
depends_on:
- monitoring
links:
- "db:database"
db:
image: postgres

33
tests/in/101001.yaml Normal file
View file

@ -0,0 +1,33 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
depends_on:
- monitoring
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

18
tests/in/101010.yaml Normal file
View file

@ -0,0 +1,18 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
depends_on:
- monitoring
links:
- "db:database"
extends:
service: frontend
db:
image: postgres

35
tests/in/101011.yaml Normal file
View file

@ -0,0 +1,35 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
depends_on:
- monitoring
extends:
service: frontend
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

18
tests/in/101100.yaml Normal file
View file

@ -0,0 +1,18 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
depends_on:
- monitoring
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres

35
tests/in/101101.yaml Normal file
View file

@ -0,0 +1,35 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
depends_on:
- monitoring
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

21
tests/in/101110.yaml Normal file
View file

@ -0,0 +1,21 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
depends_on:
- monitoring
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres

37
tests/in/101111.yaml Normal file
View file

@ -0,0 +1,37 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
depends_on:
- monitoring
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:

24
tests/in/110000.yaml Normal file
View file

@ -0,0 +1,24 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
links:
- "db:database"
backend:
image: awesome/backend
db:
image: postgres
volumes:
db-data:

42
tests/in/110001.yaml Normal file
View file

@ -0,0 +1,42 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

28
tests/in/110010.yaml Normal file
View file

@ -0,0 +1,28 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
extends:
service: frontend
links:
- "db:database"
db:
image: postgres
volumes:
db-data:

44
tests/in/110011.yaml Normal file
View file

@ -0,0 +1,44 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
extends:
service: frontend
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

28
tests/in/110100.yaml Normal file
View file

@ -0,0 +1,28 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
volumes:
db-data:

44
tests/in/110101.yaml Normal file
View file

@ -0,0 +1,44 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

30
tests/in/110110.yaml Normal file
View file

@ -0,0 +1,30 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
volumes:
db-data:

46
tests/in/110111.yaml Normal file
View file

@ -0,0 +1,46 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

26
tests/in/111000.yaml Normal file
View file

@ -0,0 +1,26 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
depends_on:
- backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
links:
- "db:database"
backend:
image: awesome/backend
db:
image: postgres
volumes:
db-data:

44
tests/in/111001.yaml Normal file
View file

@ -0,0 +1,44 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

30
tests/in/111010.yaml Normal file
View file

@ -0,0 +1,30 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
links:
- "db:database"
db:
image: postgres
volumes:
db-data:

46
tests/in/111011.yaml Normal file
View file

@ -0,0 +1,46 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

30
tests/in/111100.yaml Normal file
View file

@ -0,0 +1,30 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
volumes:
db-data:

46
tests/in/111101.yaml Normal file
View file

@ -0,0 +1,46 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

31
tests/in/111110.yaml Normal file
View file

@ -0,0 +1,31 @@
services:
frontend:
image: awesome/webapp
monitoring:
image: awesome/monitoring
backend:
image: awesome/backend
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
volumes:
db-data:

48
tests/in/111111.yaml Normal file
View file

@ -0,0 +1,48 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

View file

@ -0,0 +1,48 @@
services:
frontend:
image: awesome/webapp
networks:
- front-tier
- back-tier
monitoring:
image: awesome/monitoring
networks:
- admin
backend:
image: awesome/backend
networks:
back-tier:
aliases:
- database
admin:
aliases:
- mysql
volumes:
- type: volume
source: db-data
target: /data
volume:
nocopy: true
- type: bind
source: /var/run/postgres/postgres.sock
target: /var/run/postgres/postgres.sock
depends_on:
- monitoring
extends:
service: frontend
ports:
- "8000:5010"
links:
- "db:database"
db:
image: postgres
networks:
front-tier:
back-tier:
admin:
volumes:
db-data:

View file

@ -0,0 +1,5 @@
import sys
import pytest
if __name__ == '__main__':
pytest.main([sys.argv[1]])

View file

@ -0,0 +1,6 @@
import os
import sys
def test_validate_input_file():
process = os.system("docker-compose -f " + sys.argv[2] + " config -q")
assert process == 0