diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a088121e..a636d446 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -262,3 +262,46 @@ release: --assets-link "{\"name\":\"fluffychat-linux-arm64.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/fluffychat-linux-arm64.tar.gz\"}" \ --assets-link "{\"name\":\"fluffychat-windows.zip\",\"url\":\"${PACKAGE_REGISTRY_URL}/fluffychat-windows.zip\"}" \ --assets-link "{\"name\":\"fluffychat-web.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/fluffychat-web.tar.gz\"}" + +.docker: &docker_template + image: docker:latest + tags: + - docker + - famedly + stage: deploy + services: + - docker:dind + +docker-releases: + <<: *docker_template + script: + - docker build --pull -t "${CI_REGISTRY_IMAGE}:latest" -t "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}" . + - docker push "${CI_REGISTRY_IMAGE}:latest" + - docker push "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}" + rules: + - if: '$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/' + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + +docker-tags: + <<: *docker_template + script: + - docker build --pull -t "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}" . + - docker push "${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}" + rules: + - if: '$CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /^v\d+\.\d+\.\d+$/' + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + +docker-branches: + <<: *docker_template + script: + - docker build --pull -t "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}" -t "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}" . + - docker push "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}" + rules: + - if: $CI_COMMIT_TAG == null + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + allow_failure: true + + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..8379640b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +# Based upon https://github.com/Starbix/dockerimages/commit/b0c3e408263a90ee467d30aed0e855a610eb537a + +FROM cirrusci/flutter:2.2.3 AS builder + +RUN mkdir /fluffychat +WORKDIR /fluffychat + +COPY ./ /fluffychat + +RUN ./scripts/prepare-web.sh +RUN ./scripts/build-web.sh + +FROM nginx:alpine + +COPY --from=builder /fluffychat/build/web/ /usr/share/nginx/html +COPY --from=builder /fluffychat/config.sample.json /usr/share/nginx/html/config.json