From bc3a76b82b75b687924c61fa8bc56ead138e77ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zieli=C5=84ski?= Date: Mon, 13 Oct 2025 21:45:08 +0200 Subject: [PATCH] release --- .gitea/workflows/release.yml | 67 ++++++++++++++---------------------- 1 file changed, 26 insertions(+), 41 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d6690ae..6604bc6 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -1,12 +1,7 @@ name: Release Docker Images on: - workflow_dispatch: - inputs: - build_id: - description: 'Build ID (leave empty for latest successful build)' - required: false - type: string + workflow_dispatch: {} jobs: release: @@ -21,48 +16,36 @@ jobs: with: node-version: 20 - - name: Determine build ID - id: build - run: | - BUILD_ID="${{ github.event.inputs.build_id }}" - if [ -z "$BUILD_ID" ]; then - echo "No build_id provided, will use latest from packages" - # Fallback: you can implement logic to find latest build tag - echo "ERROR: Please provide build_id for now" - exit 1 - fi - echo "build_id=$BUILD_ID" >> "$GITHUB_OUTPUT" - echo "Using build_id: $BUILD_ID" - - name: Log in to Gitea Container Registry run: | echo "${{ secrets.REGISTRY_TOKEN }}" | docker login code.bim-it.pl -u "${{ secrets.REGISTRY_USER }}" --password-stdin - - name: Pull build artifacts (images) + - name: Pull latest build artifacts (images) run: | - docker pull code.bim-it.pl/mz/bimai-api:build-${{ steps.build.outputs.build_id }} - docker pull code.bim-it.pl/mz/bimai-ui:build-${{ steps.build.outputs.build_id }} + echo "Pulling latest build images..." + docker pull code.bim-it.pl/mz/bimai-api:latest + docker pull code.bim-it.pl/mz/bimai-ui:latest - name: Extract appsettings from images run: | mkdir -p artifacts/api artifacts/ui # Extract from API image - docker create --name temp-api code.bim-it.pl/mz/bimai-api:build-${{ steps.build.outputs.build_id }} + docker create --name temp-api code.bim-it.pl/mz/bimai-api:latest docker cp temp-api:/app/appsettings.Production.json artifacts/api/ docker rm temp-api # Extract from UI image - docker create --name temp-ui code.bim-it.pl/mz/bimai-ui:build-${{ steps.build.outputs.build_id }} + docker create --name temp-ui code.bim-it.pl/mz/bimai-ui:latest docker cp temp-ui:/app/appsettings.Production.json artifacts/ui/ docker rm temp-ui - name: Show extracted configs (before tokenization) run: | - echo "::group::API appsettings.Production.json" + echo "::group::API appsettings.Production.json (with placeholders)" cat artifacts/api/appsettings.Production.json echo "::endgroup::" - echo "::group::UI appsettings.Production.json" + echo "::group::UI appsettings.Production.json (with placeholders)" cat artifacts/ui/appsettings.Production.json echo "::endgroup::" @@ -70,14 +53,14 @@ jobs: env: SECRETS: ${{ toJson(secrets) }} VARIABLES: ${{ toJson(vars) }} - RUN_ID: ${{ steps.build.outputs.build_id }} + RUN_ID: ${{ github.run_id }} run: | node .gitea/scripts/replaceTokens.js - name: Show tokenized configs (after tokenization) run: | - echo "::group::API appsettings.Production.json (tokenized)" - cat artifacts/api/appsettings.Production.json | sed 's/Password=[^;]*/Password=***/g' + echo "::group::API appsettings.Production.json (tokenized, passwords hidden)" + cat artifacts/api/appsettings.Production.json | sed 's/Password=[^;]*/Password=***/g' | sed 's/"SecretKey":"[^"]*"/"SecretKey":"***"/g' echo "::endgroup::" echo "::group::UI appsettings.Production.json (tokenized)" cat artifacts/ui/appsettings.Production.json @@ -87,45 +70,47 @@ jobs: run: | # API cat > Dockerfile.release.api <<'EOF' - FROM code.bim-it.pl/mz/bimai-api:build-${{ steps.build.outputs.build_id }} + FROM code.bim-it.pl/mz/bimai-api:latest + LABEL org.opencontainers.image.source=https://code.bim-it.pl/mz/BimAI COPY artifacts/api/appsettings.Production.json /app/ EOF docker build -f Dockerfile.release.api \ -t code.bim-it.pl/mz/bimai-api:prod \ - -t code.bim-it.pl/mz/bimai-api:release-${{ steps.build.outputs.build_id }} \ + -t code.bim-it.pl/mz/bimai-api:release-${{ github.run_id }} \ . # UI cat > Dockerfile.release.ui <<'EOF' - FROM code.bim-it.pl/mz/bimai-ui:build-${{ steps.build.outputs.build_id }} + FROM code.bim-it.pl/mz/bimai-ui:latest + LABEL org.opencontainers.image.source=https://code.bim-it.pl/mz/BimAI COPY artifacts/ui/appsettings.Production.json /app/ EOF docker build -f Dockerfile.release.ui \ -t code.bim-it.pl/mz/bimai-ui:prod \ - -t code.bim-it.pl/mz/bimai-ui:release-${{ steps.build.outputs.build_id }} \ + -t code.bim-it.pl/mz/bimai-ui:release-${{ github.run_id }} \ . - name: Push final images run: | docker push code.bim-it.pl/mz/bimai-api:prod - docker push code.bim-it.pl/mz/bimai-api:release-${{ steps.build.outputs.build_id }} + docker push code.bim-it.pl/mz/bimai-api:release-${{ github.run_id }} docker push code.bim-it.pl/mz/bimai-ui:prod - docker push code.bim-it.pl/mz/bimai-ui:release-${{ steps.build.outputs.build_id }} + docker push code.bim-it.pl/mz/bimai-ui:release-${{ github.run_id }} - name: Output release info run: | echo "## Docker Images Released" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "**Build ID:** ${{ steps.build.outputs.build_id }}" >> $GITHUB_STEP_SUMMARY echo "**Release ID:** ${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY + echo "**Commit:** ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "### Pull commands:" >> $GITHUB_STEP_SUMMARY + echo "### 🚀 Production images ready to deploy:" >> $GITHUB_STEP_SUMMARY echo '```bash' >> $GITHUB_STEP_SUMMARY - echo "# Production (latest)" >> $GITHUB_STEP_SUMMARY + echo "# Production (latest release)" >> $GITHUB_STEP_SUMMARY echo "docker pull code.bim-it.pl/mz/bimai-api:prod" >> $GITHUB_STEP_SUMMARY echo "docker pull code.bim-it.pl/mz/bimai-ui:prod" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "# Specific release" >> $GITHUB_STEP_SUMMARY - echo "docker pull code.bim-it.pl/mz/bimai-api:release-${{ steps.build.outputs.build_id }}" >> $GITHUB_STEP_SUMMARY - echo "docker pull code.bim-it.pl/mz/bimai-ui:release-${{ steps.build.outputs.build_id }}" >> $GITHUB_STEP_SUMMARY + echo "# Specific release (for rollback)" >> $GITHUB_STEP_SUMMARY + echo "docker pull code.bim-it.pl/mz/bimai-api:release-${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY + echo "docker pull code.bim-it.pl/mz/bimai-ui:release-${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY echo '```' >> $GITHUB_STEP_SUMMARY \ No newline at end of file