diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..cc05f5b --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,79 @@ +# +# This guy is awesome: https://dev.to/bzinoun/gitlab-ci-to-build-and-push-containers-to-registry-538a +# + +image: morlay/buildx:607a2ce +variables: + # DinD's vfs driver is pretty intensive; this is less so + DOCKER_DRIVER: overlay2 + CI_HUB_USERNAME: rehashedsalt +stages: + - build +# - test + - push +services: + - docker:dind +before_script: + - echo -n "$CI_LOGIN_PASSWORD" | docker login -u "$CI_LOGIN_USERNAME" --password-stdin + - docker version + - docker info +after_script: + - docker logout hub.docker.com + +# BUILD +Build: + stage: build + script: + - docker pull $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest || true + - docker buildx create --use + - > + docker buildx build + --pull + --platform linux/amd64,linux/arm64 + --cache-from $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest + --tag $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + --push + . + - docker images + +# TEST +# TODO: Fix this +#Test_HTTP_200: +# stage: test +# script: +# - apk add curl +# - docker run -d -p 8889:80 $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA +# - sleep 10 +# - docker ps +# - netstat -tulpn +# - curl localhost:8889 | grep -ie '200 OK' +# - docker kill $(docker ps -q) + +# PUSH +Push_When_Tag: + stage: push + only: + - tags + script: + - docker pull $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + - > + docker tag + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME + - > + docker tag + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest + - docker images + - docker push $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME + - docker push $CI_HUB_USERNAME/$CI_PROJECT_NAME:latest +Push_Bleeding: + stage: push + script: + - docker pull $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + - > + docker tag + $CI_HUB_USERNAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA + $CI_HUB_USERNAME/$CI_PROJECT_NAME:bleeding + - docker images + - docker push $CI_HUB_USERNAME/$CI_PROJECT_NAME:bleeding diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5cf38e0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM php:7-apache +COPY ./ /var/www/html/ +EXPOSE 80