From d3a361e26813f834b788308819bddf64ede67184 Mon Sep 17 00:00:00 2001 From: ytshih Date: Fri, 18 Oct 2024 15:44:19 +0000 Subject: [PATCH] initial commit --- .gitea/workflows/image.yml | 52 ++++++++++++++++++++++++++++++++++++++ Dockerfile | 21 +++++++++++++++ README.md | 10 ++++++++ run.sh | 21 +++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 .gitea/workflows/image.yml create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 run.sh diff --git a/.gitea/workflows/image.yml b/.gitea/workflows/image.yml new file mode 100644 index 0000000..6c7a428 --- /dev/null +++ b/.gitea/workflows/image.yml @@ -0,0 +1,52 @@ +name: Release +on: [push] + +jobs: + release-image: + runs-on: imgbuilder + env: + CONTAINER_REGISTRY: gitea.konchin.com + GITEA_TAG: latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up rootca + run: | + echo "${{ vars.ROOTCA }}" | tee rootca.pem + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v3 + with: + config-inline: | + debug = true + [registry."${{ env.CONTAINER_REGISTRY }}"] + ca = ["rootca.pem"] + + - name: Login + uses: docker/login-action@v3 + with: + registry: ${{ env.CONTAINER_REGISTRY }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Setup env + run: | + echo "GITEA_REPO=${GITHUB_REPOSITORY}" | tr '[:upper:]' '[:lower:]' >> $GITHUB_ENV + echo "GITEA_REF_NAME=${GITHUB_REF_NAME}" | tr '[:upper:]' '[:lower:]' >> $GITHUB_ENV + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + platforms: | + linux/amd64 + push: true + tags: | + ${{ env.CONTAINER_REGISTRY }}/${{ env.GITEA_REPO }}:${{ env.GITEA_REF_NAME }} + ${{ env.CONTAINER_REGISTRY }}/${{ env.GITEA_REPO }}:${{ env.GITEA_TAG }} + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7d5200f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM archlinux:base-devel + +RUN pacman-key --init && pacman-key --populate +RUN pacman -Syu --needed --noconfirm minio-client + +RUN echo '%wheel ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers +RUN useradd -G wheel -d /build builder +RUN mkdir /script +COPY run.sh /script + +ENV MINIO_HOST="minio.konchin.com" +ENV MINIO_PORT="9000" +ENV MINIO_BUCKET="archrepo" +ENV MINIO_ACCESSKEY="" +ENV MINIO_SECRETKEY="" + +ENV REPO_NAME="custom" + +WORKDIR /build +ENTRYPOINT ["/usr/bin/env"] +CMD ["/script/run.sh"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..31bc8e3 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Image - archmakepkg + +## Environment variables + +- MINIO_HOST +- MINIO_PORT +- MINIO_ACCESSKEY +- MINIO_SECRETKEY +- MINIO_BUCKET +- REPO_NAME diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..944b694 --- /dev/null +++ b/run.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +echo 'Build package' +chown -R builder . +sudo -u builder makepkg -sc --needed --noconfirm + +echo 'Setup minio alias' +mcli alias set m "http://${MINIO_HOST}:${MINIO_PORT}" \ + "$MINIO_ACCESSKEY" "$MINIO_SECRETKEY" + +mkdir repo +echo 'Copy repo db from minio' +mcli cp "m/${MINIO_BUCKET}/${REPO_NAME}.db*" repo +mcli cp "m/${MINIO_BUCKET}/${REPO_NAME}.files" repo + +echo 'Add pkgs to repo db' +repo-add -n "repo/${REPO_NAME}.db.tar.zst" /build/*.pkg.tar.zst +mv /build/*.pkg.tar.zst repo + +echo 'Update repo to minio' +mcli mv repo/* "m/${MINIO_BUCKET}"