diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml index 3769a3a..c720b5b 100644 --- a/.woodpecker/build.yaml +++ b/.woodpecker/build.yaml @@ -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