From a4cb1d75b81e0aa5f0e466ecf64bcbceadecb05a Mon Sep 17 00:00:00 2001 From: BloxerHD018 Date: Sun, 26 Apr 2026 20:10:16 +0100 Subject: [PATCH] Add Forgejo Actions --- .forgejo/workflows/build.yml | 67 ++++++++++++++++++++++++++++++++++++ Dockerfile | 18 ++++++++++ 2 files changed, 85 insertions(+) create mode 100644 .forgejo/workflows/build.yml create mode 100644 Dockerfile diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 0000000..d7437a8 --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,67 @@ +name: Build and Test + +on: + push: + branches: ["**"] + pull_request: + +env: + DOCKER_TLS_CERTDIR: /certs + IMAGE_TAG: ${{ github.sha }} + SHORT_SHA: ${{ github.sha }} + +jobs: + cache-mii: + runs-on: debian-trixie + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Cache Container Storage + uses: actions/cache@v4 + with: + path: | + /var/lib/containers/storage + /run/containers/storage + ~/.local/share/containers/storage + key: image-cache + + - name: Login to Registry + run: podman login -u ${{ secrets.PACKAGE_USER }} -p ${{ secrets.PACKAGE_PWD }} git.spbr.net + + - name: Set Short SHA + run: echo "SHORT_SHA=${GITHUB_SHA::6}" >> $GITHUB_ENV + + - name: Build and Push + env: + CI_REGISTRY_IMAGE: git.spbr.net/spacebar/cache-mii + CI_COMMIT_SHORT_SHA: ${{ env.SHORT_SHA }} + run: | + podman login -u ${{ secrets.PACKAGE_USER }} -p ${{ secrets.PACKAGE_PWD }} git.spbr.net + podman build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" . + podman push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + + - name: Push Retagged Branch + env: + CI_REGISTRY_IMAGE: git.spbr.net/spacebar/cache-mii + CI_COMMIT_SHORT_SHA: ${{ forgejo.ref_name }} + CI_COMMIT_PREVIOUS_SHA: ${{ env.SHORT_SHA }} + run: | + podman login -u ${{ secrets.PACKAGE_USER }} -p ${{ secrets.PACKAGE_PWD }} git.spbr.net + podman pull "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" + podman tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + podman push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + + - name: Push Retagged Latest + env: + CI_REGISTRY_IMAGE: git.spbr.net/spacebar/cache-mii + CI_COMMIT_SHORT_SHA: latest + CI_COMMIT_PREVIOUS_SHA: ${{ env.SHORT_SHA }} + run: | + podman login -u ${{ secrets.PACKAGE_USER }} -p ${{ secrets.PACKAGE_PWD }} git.spbr.net + podman pull "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" + podman tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_PREVIOUS_SHA" "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" + podman push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d4a1850 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +# syntax=docker/dockerfile:1 + +FROM rust:alpine as builder + +RUN apk add openssl-dev musl-dev openssl-libs-static lld git + +WORKDIR /app + +COPY . . + +RUN OPENSSL_LIB_DIR=/usr/lib OPENSSL_INCLUDE_DIR=/usr/include/openssl OPENSSL_STATIC=1 cargo build --release --target x86_64-unknown-linux-musl + +FROM scratch as final + +WORKDIR /app +COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/cache-mii ./cache-mii + +ENTRYPOINT ["./cache-mii"]