55 lines
1.6 KiB
YAML
55 lines
1.6 KiB
YAML
when:
|
|
- event: push
|
|
branch: woodpecker
|
|
|
|
steps:
|
|
- name: code-tests
|
|
image: python:3.11.7-alpine
|
|
commands:
|
|
- cd api
|
|
- python3 -m venv env
|
|
- source env/bin/activate
|
|
- pip install -r requirements.txt pytest
|
|
- python3 -m pytest --junit-xml=pytest_junit.xml
|
|
|
|
- name: build
|
|
image: docker
|
|
environment:
|
|
ACR_USERNAME: marcin00
|
|
ACR_PASSWORD:
|
|
from_secret: acr_password
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
commands:
|
|
- export DOCKER_IMAGE=marcin00.azurecr.io/user-microservice:$CI_COMMIT_SHA
|
|
|
|
- echo "===> Building Docker image"
|
|
- docker build -t $DOCKER_IMAGE .
|
|
|
|
- echo "===> Installing bash"
|
|
- apk add --no-cache curl bash
|
|
|
|
- echo "===> Installing goss"
|
|
- curl -L https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -o goss
|
|
- chmod +x goss
|
|
|
|
- echo "===> Starting container for test"
|
|
- "CONTAINER_ID=$(docker run -d -e SQLALCHEMY_DATABASE_URI=sqlite:///:memory: $DOCKER_IMAGE)"
|
|
- sleep 3 # czas na uruchomienie
|
|
|
|
- echo "===> Copying goss.yaml to container"
|
|
- docker cp goss.yaml $CONTAINER_ID:/goss.yaml
|
|
|
|
- echo "===> Running goss tests"
|
|
- docker exec $CONTAINER_ID ./goss -g /goss.yaml validate --format junit > ../goss_junit.xml
|
|
|
|
- echo "===> Cleaning up test container"
|
|
- docker stop $CONTAINER_ID
|
|
- docker rm $CONTAINER_ID
|
|
|
|
- echo "===> Logging in to ACR"
|
|
- echo "$ACR_PASSWORD" | docker login marcin00.azurecr.io -u $ACR_USERNAME --password-stdin
|
|
|
|
- echo "===> Pushing image to ACR"
|
|
- docker push $DOCKER_IMAGE
|