From 9e247eb2a1a2dc72459a9be914ea7ef9bff7970c Mon Sep 17 00:00:00 2001 From: Martin Berka Date: Sat, 8 Feb 2025 23:46:26 +0100 Subject: [PATCH] =?UTF-8?q?Podpora=20sestavov=C3=A1n=C3=AD=20p=C5=99es=20W?= =?UTF-8?q?oodpecker=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .woodpecker/workflow.yaml | 56 +++++++++++++++++++++++++++++++++++++++ Dockerfile-Woodpecker | 21 +++++++++++++++ 2 files changed, 77 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..727de07 --- /dev/null +++ b/.woodpecker/workflow.yaml @@ -0,0 +1,56 @@ +variables: + - &node_image 'node:18-alpine3.18' + - &branch 'master' + +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ě.{{else}}❌ Sestavení {{build.number}} selhalo.{{/success}}\n\nPipeline: {{build.link}}\nPoslední commit: {{commit.message}}Autor: {{commit.author}}" diff --git a/Dockerfile-Woodpecker b/Dockerfile-Woodpecker new file mode 100644 index 0000000..ede44bc --- /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" ]