From 2663632191a547c15acb8dcf81839e9b9f1b05df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Sat, 26 Aug 2023 19:36:10 +0200 Subject: [PATCH] [CICD] Switch to gitea-actions as CI/CD --- .docker/init.sh | 1 + .gitea/workflows/website.yml | 43 ++++++++++++++++++++++++++++++++++++ Dockerfile | 11 ++++----- Makefile | 14 ++++++------ 4 files changed, 55 insertions(+), 14 deletions(-) create mode 100644 .gitea/workflows/website.yml diff --git a/.docker/init.sh b/.docker/init.sh index 0998a0e..38bbf85 100644 --- a/.docker/init.sh +++ b/.docker/init.sh @@ -1,3 +1,4 @@ +#!/bin/bash echo "" > /var/log/msmtp diff --git a/.gitea/workflows/website.yml b/.gitea/workflows/website.yml new file mode 100644 index 0000000..f633af6 --- /dev/null +++ b/.gitea/workflows/website.yml @@ -0,0 +1,43 @@ + +# https://docs.gitea.com/next/usage/actions/quickstart +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions +# https://docs.github.com/en/actions/learn-github-actions/contexts#github-context + +name: Build Docker and Deploy +run-name: Build & Deploy ${{ gitea.ref }} on ${{ gitea.actor }} + +on: + push: + branches: ['master'] + + + +jobs: + build: + name: Build Docker + runs-on: bfb-cicd-latest + steps: + - run: echo -n "${{ secrets.DOCKER_REG_PASS }}" | docker login registry.blackforestbytes.com -u docker --password-stdin + - run: echo -n "${{ secrets.DOCKER_IO_PASS }}" | docker login -u "${{DOCKER_IO_USER}}" --password-stdin + - name: Check out code + uses: actions/checkout@v3 + - run: cd "${{ gitea.workspace }}" && make clean + - run: cd "${{ gitea.workspace }}" && make docker + - run: cd "${{ gitea.workspace }}" && make push-docker + + deploy: + name: Deploy to Server + needs: [build] + runs-on: ubuntu-latest + steps: + - name: Deploy [develop] on remote (via ssh) + uses: appleboy/ssh-action@v1.0.0 + with: + host: mikescher.com + username: deploybot + port: 7919 + key: "${{ secrets.SSH_KEY_MSCOMDEPLOYBOT }}" + script: sudo /var/docker/__run/website.sh + + + diff --git a/Dockerfile b/Dockerfile index dfca6ac..e5e74e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,18 +3,15 @@ WORKDIR /var/www/html COPY ./www /var/www/html -RUN apt-get update && \ +RUN apt-get update && \ apt-get install -y git curl procps zip msmtp bsd-mailx && \ - apt-get install -y magick && \ + apt-get install -y imagemagick && \ rm -rf /var/lib/apt/lists/* COPY .docker /_docker -RUN rm /var/www/html/Makefile && \ - rm /var/www/html/Dockerfile && \ - rm -rf /var/www/html/.git && \ - rm -rf /var/www/html/.idea && \ - rm -rf /var/www/html/.docker +RUN chmod +Xx /_docker/run.sh && \ + chmod +Xx /_docker/init.sh # MapVolumes for: /var/www/html/config.php # MapVolumes for: /var/www/html/dynamic/egg diff --git a/Makefile b/Makefile index 562aaaf..6e266c2 100644 --- a/Makefile +++ b/Makefile @@ -9,12 +9,12 @@ HASH=$(shell git rev-parse HEAD) run: php -S localhost:8000 -t . -build-docker: - [ ! -f "DOCKER_GIT_INFO" ] || rm DOCKER_GIT_INFO - git rev-parse --abbrev-ref HEAD >> DOCKER_GIT_INFO - git rev-parse HEAD >> DOCKER_GIT_INFO - git log -1 --format=%cd --date=iso >> DOCKER_GIT_INFO - git config --get remote.origin.url >> DOCKER_GIT_INFO +docker: + echo -n "VCSTYPE=" >> DOCKER_GIT_INFO ; echo "git" >> DOCKER_GIT_INFO + echo -n "BRANCH=" >> DOCKER_GIT_INFO ; git rev-parse --abbrev-ref HEAD >> DOCKER_GIT_INFO + echo -n "HASH=" >> DOCKER_GIT_INFO ; git rev-parse HEAD >> DOCKER_GIT_INFO + echo -n "COMMITTIME=" >> DOCKER_GIT_INFO ; git log -1 --format=%cd --date=iso >> DOCKER_GIT_INFO + echo -n "REMOTE=" >> DOCKER_GIT_INFO ; git remote -v | awk '{print $2}' | uniq | tr '\n' ';' >> DOCKER_GIT_INFO docker build \ -t $(DOCKER_NAME):$(HASH) \ -t $(DOCKER_NAME):$(NAMESPACE)-latest \ @@ -53,7 +53,7 @@ inspect-docker: $(DOCKER_NAME):latest \ bash -push-docker: build-docker +push-docker: docker image push $(DOCKER_REPO)/$(DOCKER_NAME):$(HASH) docker image push $(DOCKER_REPO)/$(DOCKER_NAME):$(NAMESPACE)-latest docker image push $(DOCKER_REPO)/$(DOCKER_NAME):latest