From 100468713bedf96b8dab83419ed281b0e7aa9d8f Mon Sep 17 00:00:00 2001 From: Martin Berka Date: Sat, 8 Feb 2025 23:46:26 +0100 Subject: [PATCH] =?UTF-8?q?Sestavov=C3=A1n=C3=AD=20p=C5=99es=20Woodpecker?= =?UTF-8?q?=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .woodpecker/workflow.yaml | 58 +++++++++++++++++++++++++++++++++++++++ Dockerfile-Woodpecker | 21 ++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 .woodpecker/workflow.yaml create mode 100644 Dockerfile-Woodpecker diff --git a/.woodpecker/workflow.yaml b/.woodpecker/workflow.yaml new file mode 100644 index 0000000..013955b --- /dev/null +++ b/.woodpecker/workflow.yaml @@ -0,0 +1,58 @@ +variables: + - &node_image 'node:18-alpine3.18' + # TODO nahradit! + - &branch 'feat/woodpecker' + +when: + - event: push + branch: *branch + +steps: + - name: Install server dependencies + image: *node_image + commands: + - cd server + - yarn install --frozen-lockfile + - name: Install client dependencies + image: *node_image + commands: + - cd client + - yarn install --frozen-lockfile + - name: Build server + depends_on: [Install server dependencies] + image: *node_image + commands: + - cd server + - yarn build + - name: Build client + depends_on: [Install client dependencies] + image: *node_image + commands: + - cd client + - yarn build + - name: Build Docker image + depends_on: [Build server, Build client] + image: woodpeckerci/plugin-docker-buildx + settings: + dockerfile: Dockerfile-Woodpecker + platforms: linux/amd64 + registry: + from_secret: REPO_URL + username: + from_secret: REPO_USERNAME + password: + from_secret: REPO_PASSWORD + repo: + from_secret: REPO_NAME + - name: Discord notification - build + image: appleboy/drone-discord + depends_on: [Build Docker image] + when: + - status: [ success, failure ] + settings: + webhook_id: + from_secret: DISCORD_WEBHOOK_ID + webhook_token: + from_secret: DISCORD_WEBHOOK_TOKEN + message: "{{#success build.status}}✅ Sestavení {{build.number}} proběhlo úspěšně. Dobrá práce!{{else}}❌ Sestavení {{build.number}} selhalo. Oprav mě!{{/success}}\n\nPipeline: {{build.link}}\nPoslední commit: {{commit.message}}Autor: {{commit.author}}" + \ No newline at end of file diff --git a/Dockerfile-Woodpecker b/Dockerfile-Woodpecker new file mode 100644 index 0000000..da00adf --- /dev/null +++ b/Dockerfile-Woodpecker @@ -0,0 +1,21 @@ +FROM node:18-alpine3.18 +ENV LANG=cs_CZ.UTF-8 +ENV NODE_ENV=production + +WORKDIR /app + +# Vykopírování sestaveného serveru +COPY ./server/node_modules ./server/node_modules +COPY ./server/dist ./ +# TODO tohle není dobře, má to být součástí serveru +COPY ./server/resources ./resources + +# Vykopírování sestaveného klienta +COPY ./client/dist ./public + +# Zkopírování konfigurace easter eggů +RUN if [ -f ./server/.easter-eggs.json ]; then cp ./server/.easter-eggs.json ./server/; fi + +EXPOSE 3000 + +CMD [ "node", "./server/src/index.js" ]