From 1d5aab6a8eda4152d8b3e20f39ffc59cd617a3d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Sch=C3=A4ferdiek?= Date: Wed, 11 Dec 2024 18:44:11 +0100 Subject: [PATCH] First bootstrap --- .editorconfig | 8 +++++ .forgejo/workflows/build.yaml | 32 +++++++++++++++++ .forgejo/workflows/release.yaml | 47 +++++++++++++++++++++++++ .forgejo/workflows/release_rebuild.yaml | 46 ++++++++++++++++++++++++ Dockerfile | 12 +++++++ 5 files changed, 145 insertions(+) create mode 100644 .editorconfig create mode 100644 .forgejo/workflows/build.yaml create mode 100644 .forgejo/workflows/release.yaml create mode 100644 .forgejo/workflows/release_rebuild.yaml create mode 100644 Dockerfile diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..956685e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = false +max_line_length = 120 +tab_width = 4 \ No newline at end of file diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..affea56 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,32 @@ +on: + pull_request: + types: [opened, synchronize, reopened] + push: + branches: + - master +env: + IMAGE_TAG: git.myservermanager.com/msm/forgejo-base-executor-image +jobs: + build: + runs-on: docker + container: + image: node:20-bookworm + steps: + - name: Prepare requirements + run: | + apt-get update + apt-get install -y curl wget bash apt-transport-https ca-certificates gnupg zstd clang + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin + - name: Checkout + uses: actions/checkout@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Test docker image build + uses: docker/build-push-action@v4 + with: + push: false + tags: | + ${{ env.IMAGE_TAG }}:${{ github.sha }} diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml new file mode 100644 index 0000000..78d3577 --- /dev/null +++ b/.forgejo/workflows/release.yaml @@ -0,0 +1,47 @@ +on: + push: + tags: + - "*" +env: + IMAGE_TAG_PRIVATE: git.myservermanager.com/msm/forgejo-base-executor-image + FORGEJO_FQDN: git.myservermanager.com +jobs: + build: + runs-on: docker + container: + image: node:20-bookworm + steps: + - name: Prepare requirements + run: | + apt-get update + apt-get install -y curl wget bash apt-transport-https ca-certificates gnupg zstd clang + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin + + - uses: actions/checkout@v3 + name: Clone + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Forgejo + uses: docker/login-action@v2 + with: + registry: ${{ env.FORGEJO_FQDN }} + username: ${{ secrets.FORGEJO_USER }} + password: ${{ secrets.FORGEJO_TOKEN }} + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_KEY }} + + - name: Build docker image + uses: docker/build-push-action@v4 + with: + push: true + tags: | + ${{ env.IMAGE_TAG_PRIVATE }}:latest diff --git a/.forgejo/workflows/release_rebuild.yaml b/.forgejo/workflows/release_rebuild.yaml new file mode 100644 index 0000000..cf8ea41 --- /dev/null +++ b/.forgejo/workflows/release_rebuild.yaml @@ -0,0 +1,46 @@ +on: + schedule: + - cron: "0 0 1 * *" +env: + IMAGE_TAG_PRIVATE: git.myservermanager.com/msm/forgejo-base-executor-image + FORGEJO_FQDN: git.myservermanager.com +jobs: + build: + runs-on: docker + container: + image: alpine:3.18 + steps: + - name: Prepare requirements + run: | + apt-get update + apt-get install -y curl wget bash apt-transport-https ca-certificates gnupg zstd clang + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin + + - uses: actions/checkout@v3 + name: Clone + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Forgejo + uses: docker/login-action@v2 + with: + registry: ${{ env.FORGEJO_FQDN }} + username: ${{ secrets.FORGEJO_USER }} + password: ${{ secrets.FORGEJO_TOKEN }} + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_KEY }} + + - name: Build docker image + uses: docker/build-push-action@v4 + with: + push: true + tags: | + ${{ env.IMAGE_TAG_PRIVATE }}:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..88e69da --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM ubuntu:24.04 +LABEL maintainer="msm " + +RUN < /dev/null +apt-get update +apt-get install -y --no-install-recommends docker-ce docker-ce-cli containerd.io docker-buildx-plugin +rm -rf /var/lib/apt/lists/\* /tmp/\* /var/tmp/* +EOF