Modified building step

This commit is contained in:
Marcin-Ramotowski 2025-05-25 17:44:17 +00:00
parent bf60011948
commit c996be5953

View File

@ -12,28 +12,43 @@ steps:
- pip install -r requirements.txt pytest
- python3 -m pytest --junit-xml=pytest_junit.xml
- name: build-test-and-push-image
image: docker:dind
privileged: true
- name: build
image: docker
environment:
DOCKER_HOST: unix:///var/run/docker.sock
ACR_USERNAME: marcin00
ACR_PASSWORD:
from_secret: acr_password
volumes:
- /var/run/docker.sock:/var/run/docker.sock
commands:
- dockerd-entrypoint.sh &
- sleep 3
- DOCKER_IMAGE=user-microservice:CI_COMMIT_SHA
- export DOCKER_IMAGE=marcin00.azurecr.io/user-microservice:$CI_COMMIT_SHA
- echo "===> Building Docker image"
- docker build -t $DOCKER_IMAGE .
- apk add --no-cache bash
- wget https://github.com/aelsabbahy/goss/releases/latest/download/goss-linux-amd64 -O goss
- wget https://github.com/aelsabbahy/goss/releases/latest/download/dgoss -O dgoss
- chmod +rx *goss
- export GOSS_OPTS="-f junit"
- export GOSS_PATH=./goss
- export GOSS_SLEEP=3
- "./dgoss run -e SQLALCHEMY_DATABASE_URI=sqlite:///:memory: $DOCKER_IMAGE > /workspace/goss_junit.xml"
- echo "===> Logging into ACR"
- 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