From 5eebec3d9b8bffb06a701ba62597d9b379336e71 Mon Sep 17 00:00:00 2001 From: John Turner Date: Thu, 4 Dec 2025 22:57:16 +0000 Subject: [PATCH] add CI files --- .docker/Dockerfile | 26 ++++++++++++ .docker/etc/portage/make.conf | 2 + .../etc/portage/package.accept_keywords/meson | 1 + .../portage/package.accept_keywords/rust-bin | 1 + .docker/etc/portage/package.use/rust-bin | 1 + .docker/etc/portage/repos.conf | 24 +++++++++++ .gitea/workflows/docker.yml | 42 +++++++++++++++++++ 7 files changed, 97 insertions(+) create mode 100644 .docker/Dockerfile create mode 100644 .docker/etc/portage/make.conf create mode 100644 .docker/etc/portage/package.accept_keywords/meson create mode 100644 .docker/etc/portage/package.accept_keywords/rust-bin create mode 100644 .docker/etc/portage/package.use/rust-bin create mode 100644 .docker/etc/portage/repos.conf create mode 100644 .gitea/workflows/docker.yml diff --git a/.docker/Dockerfile b/.docker/Dockerfile new file mode 100644 index 0000000..c1e6525 --- /dev/null +++ b/.docker/Dockerfile @@ -0,0 +1,26 @@ +FROM gentoo/stage3:latest + +COPY ./. / + +RUN getuto + +RUN emerge-webrsync + +RUN emerge \ + =dev-lang/rust-bin-9999 \ + llvm-core/clang \ + llvm-core/lld \ + dev-vcs/git \ + sys-process/parallel + +RUN git clone https://jturnerusa.dev/cgit/ebuilds/ /var/db/repos/spawns + +COPY etc/portage/repos.conf /etc/portage/ + +RUN mkdir -p /var/cache/distfiles/git3-src && chown portage:portage /var/cache/distfiles/git3-src + +RUN emerge =dev-build/meson-9999 + +WORKDIR /workspace + +ENTRYPOINT /bin/bash diff --git a/.docker/etc/portage/make.conf b/.docker/etc/portage/make.conf new file mode 100644 index 0000000..d1b8f5f --- /dev/null +++ b/.docker/etc/portage/make.conf @@ -0,0 +1,2 @@ +BINPKG_FORMAT="gpkg" +FEATURES="binpkg-request-signature getbinpkg -ipc-sandbox -network-sandbox -pid-sandbox -userfetch -news" \ No newline at end of file diff --git a/.docker/etc/portage/package.accept_keywords/meson b/.docker/etc/portage/package.accept_keywords/meson new file mode 100644 index 0000000..0b03f66 --- /dev/null +++ b/.docker/etc/portage/package.accept_keywords/meson @@ -0,0 +1 @@ +dev-build/meson ** \ No newline at end of file diff --git a/.docker/etc/portage/package.accept_keywords/rust-bin b/.docker/etc/portage/package.accept_keywords/rust-bin new file mode 100644 index 0000000..181194c --- /dev/null +++ b/.docker/etc/portage/package.accept_keywords/rust-bin @@ -0,0 +1 @@ +dev-lang/rust-bin ** \ No newline at end of file diff --git a/.docker/etc/portage/package.use/rust-bin b/.docker/etc/portage/package.use/rust-bin new file mode 100644 index 0000000..c939c80 --- /dev/null +++ b/.docker/etc/portage/package.use/rust-bin @@ -0,0 +1 @@ +dev-lang/rust-bin clippy rustfmt \ No newline at end of file diff --git a/.docker/etc/portage/repos.conf b/.docker/etc/portage/repos.conf new file mode 100644 index 0000000..50c1127 --- /dev/null +++ b/.docker/etc/portage/repos.conf @@ -0,0 +1,24 @@ +[DEFAULT] +main-repo = gentoo + +[gentoo] +location = /var/db/repos/gentoo +sync-type = rsync +sync-uri = rsync://rsync.gentoo.org/gentoo-portage +auto-sync = yes +sync-rsync-verify-jobs = 1 +sync-rsync-verify-metamanifest = yes +sync-rsync-verify-max-age = 3 +sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc +sync-openpgp-keyserver = hkps://keys.gentoo.org +sync-openpgp-key-refresh-retry-count = 40 +sync-openpgp-key-refresh-retry-overall-timeout = 1200 +sync-openpgp-key-refresh-retry-delay-exp-base = 2 +sync-openpgp-key-refresh-retry-delay-max = 60 +sync-openpgp-key-refresh-retry-delay-mult = 4 +sync-webrsync-verify-signature = yes +sync-git-verify-commit-signature = true + +[spawns] +location = /var/db/repos/spawns +sync-uri = https://jturnerusa.dev/cgit/ebuilds \ No newline at end of file diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml new file mode 100644 index 0000000..90b53ad --- /dev/null +++ b/.gitea/workflows/docker.yml @@ -0,0 +1,42 @@ +name: Build gentoo-utils docker image + +on: + push: + branches: + - master + paths: + - '.docker/Dockerfile' + pull_request: + paths: + - '.docker/Dockerfile' + workflow_dispatch: + + +jobs: + build-docker: + runs-on: ubuntu-latest + + steps: + - + name: Checkout repo + uses: actions/checkout@v4 + + - + name: Set up Docker buildx + uses: docker/setup-buildx-action@v3 + + - + name: Log in to Github Container Registry + uses: docker/login-action@v3 + with: + registry: git.epenguin.net + username: ${{ gitea.actor }} + password: ${{ secrets.CI_TOKEN }} + + - + name: Build and push + uses: docker/build-push-action@v6 + with: + push: true + tags: git.epenguin.net/${{ gitea.repository }}:latest + context: "{{defaultContext}}:.docker"