From d0b0fb9d3df2688d8af05bec3bb514fe1d7b6412 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 16 Jul 2026 00:52:01 -0400 Subject: [PATCH] store packages to getia registry --- .gitea/workflows/deploy.yml | 24 ++++++++++++++++++++++++ DEPLOYMENT_FILES.md | 20 ++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 1ced115..926c064 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -19,6 +19,10 @@ jobs: DEPLOY_USER: ${{ secrets.DEPLOY_USER }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }} DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }} + GITEA_BASE_URL: ${{ secrets.GITEA_BASE_URL }} + GITEA_PACKAGE_OWNER: ${{ secrets.GITEA_PACKAGE_OWNER }} + GITEA_PACKAGE_USER: ${{ secrets.GITEA_PACKAGE_USER }} + GITEA_PACKAGE_TOKEN: ${{ secrets.GITEA_PACKAGE_TOKEN }} steps: - name: Checkout @@ -40,6 +44,26 @@ jobs: - name: Create deployment artifact run: bash scripts/build-deploy-artifact.sh + - name: Publish deployment package + run: | + test -n "${GITEA_PACKAGE_USER}" + test -n "${GITEA_PACKAGE_TOKEN}" + + BASE_URL="${GITEA_BASE_URL:-${GITHUB_SERVER_URL}}" + PACKAGE_OWNER="${GITEA_PACKAGE_OWNER:-${GITHUB_REPOSITORY_OWNER}}" + PACKAGE_NAME="alrahma_sunday_school" + REF_NAME="${GITHUB_REF_NAME:-manual}" + SHORT_SHA="$(printf '%s' "${GITHUB_SHA}" | cut -c1-7)" + VERSION="$(printf '%s-%s-%s' "${REF_NAME}" "${GITHUB_RUN_NUMBER}" "${SHORT_SHA}" | sed 's/[^A-Za-z0-9._+-]/-/g')" + FILE_NAME="${PACKAGE_NAME}-${VERSION}.tar.gz" + + tar -czf "build/${FILE_NAME}" -C build/deploy . + + curl --fail-with-body \ + --user "${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}" \ + --upload-file "build/${FILE_NAME}" \ + "${BASE_URL}/api/packages/${PACKAGE_OWNER}/generic/${PACKAGE_NAME}/${VERSION}/${FILE_NAME}" + - name: Configure SSH run: | test -n "${DEPLOY_HOST}" diff --git a/DEPLOYMENT_FILES.md b/DEPLOYMENT_FILES.md index 322813f..97961f7 100644 --- a/DEPLOYMENT_FILES.md +++ b/DEPLOYMENT_FILES.md @@ -32,3 +32,23 @@ Excluded: - runtime cache, logs, sessions, uploads, and generated reports The server keeps its own `.env` and runtime `writable/` contents. The deploy job syncs from `build/deploy/` and excludes mutable writable subdirectories so production data is not overwritten. + +## Gitea Package + +The deploy workflow also archives `build/deploy/` and publishes it to Gitea Packages as a generic package: + +- Package name: `alrahma_sunday_school` +- Version format: `{branch}-{run_number}-{short_sha}` +- File format: `alrahma_sunday_school-{version}.tar.gz` + +Required repository secrets for package publishing: + +- `GITEA_PACKAGE_USER` +- `GITEA_PACKAGE_TOKEN` + +Optional repository secrets: + +- `GITEA_BASE_URL` - defaults to the Actions server URL. +- `GITEA_PACKAGE_OWNER` - defaults to the repository owner. + +The token must have permission to publish packages for the package owner.