diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..a6dd5f3 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,23 @@ +name: Build smtp-relay + +on: + push: + branches: [main] + paths: + - 'Dockerfile' + - 'entrypoint.sh' + - 'main.cf' + - 'master.cf' + - 'smtpd.conf' + - 'scripts/build.sh' + - '.gitea/workflows/build.yml' + workflow_dispatch: + +jobs: + build: + runs-on: [self-hosted, valhalla] + steps: + - uses: actions/checkout@v4 + + - name: Build image (dev) + run: bash scripts/build.sh dev diff --git a/build.sh b/scripts/build.sh similarity index 89% rename from build.sh rename to scripts/build.sh index 2bec8cb..1171081 100644 --- a/build.sh +++ b/scripts/build.sh @@ -1,9 +1,9 @@ #!/usr/bin/env bash -# build.sh [tag] -# Packages the smtp-relay context, uploads to MinIO, runs Kaniko in-cluster, waits. +# scripts/build.sh [tag] +# Empaqueta el contexto, sube a MinIO, lanza Kaniko en-cluster, espera. set -euo pipefail -TAG="${1:-latest}" +TAG="${1:-dev}" HARBOR="harbor.manabo.org" IMAGE="${HARBOR}/library/smtp-relay:${TAG}" BUCKET="kaniko-builds" @@ -14,10 +14,13 @@ echo "==> Building ${IMAGE}" echo "==> Packaging context ..." tar -czf /tmp/kaniko-context.tar.gz \ --exclude='.git' \ - --exclude='build.sh' \ - --exclude='k8s' \ - -C "$(dirname "$0")" . -echo "==> Uploading to MinIO (${BUCKET}/${CONTEXT_KEY}) ..." + --exclude='scripts' \ + --exclude='.gitea' \ + --exclude='README.md' \ + -C "$(git rev-parse --show-toplevel)" \ + Dockerfile entrypoint.sh main.cf master.cf smtpd.conf + +echo "==> Uploading to MinIO ..." mc cp /tmp/kaniko-context.tar.gz "minio/${BUCKET}/${CONTEXT_KEY}" rm /tmp/kaniko-context.tar.gz