This commit is contained in:
52
.gitea/workflows/image.yml
Normal file
52
.gitea/workflows/image.yml
Normal file
@@ -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 }}
|
||||
|
||||
21
Dockerfile
Normal file
21
Dockerfile
Normal file
@@ -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"]
|
||||
10
README.md
Normal file
10
README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# Image - archmakepkg
|
||||
|
||||
## Environment variables
|
||||
|
||||
- MINIO_HOST
|
||||
- MINIO_PORT
|
||||
- MINIO_ACCESSKEY
|
||||
- MINIO_SECRETKEY
|
||||
- MINIO_BUCKET
|
||||
- REPO_NAME
|
||||
21
run.sh
Normal file
21
run.sh
Normal file
@@ -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}"
|
||||
Reference in New Issue
Block a user