From 3379abb0dc6b7bbedb4faba14c59fa5da9a4f9b2 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sat, 27 May 2023 17:31:47 +0100 Subject: [PATCH] ci: Add a pipeline to build and deploy the docs --- .woodpecker/build.yml | 4 +-- .woodpecker/docs.yml | 72 +++++++++++++++++++++++++++++++++++++++++++ docs/Dockerfile | 12 ++++++-- docs/service.yml | 2 +- 4 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 .woodpecker/docs.yml diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml index 09b4bc2..2d467f4 100644 --- a/.woodpecker/build.yml +++ b/.woodpecker/build.yml @@ -39,7 +39,7 @@ pipeline: matrix_user: from_secret: matrix_user - matrix_msg: "[${CI_REPO}] Job #${CI_BUILD_NUMBER} failed for branch ${CI_COMMIT_BRANCH}. ${CI_BUILD_LINK}" + matrix_msg: "[${CI_REPO}][Build] Job #${CI_BUILD_NUMBER} failed for branch ${CI_COMMIT_BRANCH}. ${CI_BUILD_LINK}" secrets: [ matrix_room, matrix_token, matrix_user ] when: - status: [failure] @@ -53,7 +53,7 @@ pipeline: password: from_secret: mailer_password to: ${CI_COMMIT_AUTHOR_EMAIL} - subject: "[${CI_REPO}] JOB #${CI_BUILD_NUMBER} failed for branch '${CI_COMMIT_BRANCH}'." + subject: "[${CI_REPO}][Build] JOB #${CI_BUILD_NUMBER} failed for branch '${CI_COMMIT_BRANCH}'." text: | BUILD: ${CI_BUILD_LINK} COMMIT: ${CI_COMMIT_LINK} diff --git a/.woodpecker/docs.yml b/.woodpecker/docs.yml new file mode 100644 index 0000000..26ec64c --- /dev/null +++ b/.woodpecker/docs.yml @@ -0,0 +1,72 @@ +clone: + git: + image: woodpeckerci/plugin-git + settings: + depth: 1 + lfs: false + recursive: false + +pipeline: + build: + image: woodpeckerci/plugin-docker-buildx + secrets: [docker_username, docker_password] + settings: + repo: serenelang/serene-docs + registry: docker.io + dockerfile: docs/Dockerfile + tags: latest + username: + from_secret: docker_username + password: + from_secret: docker_password + when: + - path: + include: [ 'mkdocs.yml', 'docs/**' ] + - branch: master + + deploy: + image: docker:24.0.2-cli-alpine3.18 + commands: + - docker stack deploy -c docs/service.yml serene-docs --prune + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + when: + - path: + include: [ 'mkdocs.yml', 'docs/**' ] + # ignore_message: "[ALL]" + - branch: master + + ChatNotify: + image: lxsameer/notify:3 + settings: + matrix_room_id: + from_secret: matrix_room + matrix_access_token: + from_secret: matrix_token + + matrix_user: + from_secret: matrix_user + + matrix_msg: "[${CI_REPO}][Docs] Job #${CI_BUILD_NUMBER} failed for branch ${CI_COMMIT_BRANCH}. ${CI_BUILD_LINK}" + secrets: [ matrix_room, matrix_token, matrix_user ] + when: + - status: [failure] + + MailNotify: + image: lxsameer/woodpecker_mailer:4 + settings: + from: ci@serene-lang.org + user: + from_secret: mailer_user + password: + from_secret: mailer_password + to: ${CI_COMMIT_AUTHOR_EMAIL} + subject: "[${CI_REPO}][Docs] JOB #${CI_BUILD_NUMBER} failed for branch '${CI_COMMIT_BRANCH}'." + text: | + BUILD: ${CI_BUILD_LINK} + COMMIT: ${CI_COMMIT_LINK} + when: + - status: [failure] + + secrets: [ mail_pass, mail_user ] diff --git a/docs/Dockerfile b/docs/Dockerfile index 3664224..f7a2d07 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -1,6 +1,14 @@ -FROM busybox +FROM docker.io/python -COPY ./build/docs /app +WORKDIR /app +COPY . . +RUN pip install -r docs/requirements.txt +RUN mkdocs build + + +FROM docker.io/busybox + +COPY --from=0 /app/build/docs /app WORKDIR /app CMD ["busybox", "httpd", "-f", "-v", "-p", "3000"] diff --git a/docs/service.yml b/docs/service.yml index d2f982b..4cbec35 100644 --- a/docs/service.yml +++ b/docs/service.yml @@ -2,7 +2,7 @@ version: "3.9" services: serene-docs: - image: lxsameer/serene-docs + image: serenelang/serene-docs environment: USER_UID: 1100 USER_GID: 1100