From fcb8c2a78b7e22d02baf3ca1c464369694080efa Mon Sep 17 00:00:00 2001 From: "azykov@mail.ru" Date: Fri, 26 Jun 2026 23:12:13 +0300 Subject: [PATCH] no base actions --- .gitea/workflows/deploy.yml | 95 ++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 50 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 712baca..5c3754e 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -2,69 +2,65 @@ name: Build & Deploy on: push -# push: -# branches: [main] env: - REGISTRY: ${{ gitea.server_url && 'git.aggtaa.com' || 'localhost' }} - IMAGE_PREFIX: ${{ gitea.repository }} # owner/blockly3d + REGISTRY: git.aggtaa.com + IMAGE_PREFIX: ${{ gitea.repository }} jobs: - # ── BUILD SERVER ───────────────────────────────────────────────────────────── + # ── BUILD SERVER ────────────────────────────────────────────────────────────── build-server: runs-on: docker1 steps: - - uses: actions/checkout@v4 - - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ secrets.REGISTRY_USER }} - password: ${{ secrets.REGISTRY_PASSWORD }} - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Checkout + run: | + if [ -d .git ]; then + git fetch origin main + git reset --hard origin/main + else + git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git . + fi - name: Build & push server - uses: docker/build-push-action@v5 - with: - context: . - file: server.Dockerfile - push: true - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:latest - ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:${{ gitea.sha }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:cache - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:cache,mode=max + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" | \ + docker login ${{ env.REGISTRY }} -u ${{ secrets.REGISTRY_USER }} --password-stdin + + docker buildx build \ + --cache-from type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:cache \ + --cache-to type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:cache,mode=max \ + --tag ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:latest \ + --tag ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/server:${{ gitea.sha }} \ + --file server.Dockerfile \ + --push \ + . # ── BUILD WEBCLIENT ─────────────────────────────────────────────────────────── build-webclient: runs-on: docker1 steps: - - uses: actions/checkout@v4 - - - name: Login to Gitea Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ secrets.REGISTRY_USER }} - password: ${{ secrets.REGISTRY_PASSWORD }} - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Checkout + run: | + if [ -d .git ]; then + git fetch origin main + git reset --hard origin/main + else + git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git . + fi - name: Build & push webclient - uses: docker/build-push-action@v5 - with: - context: . - file: webclient.Dockerfile - push: true - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:latest - ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:${{ gitea.sha }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:cache - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:cache,mode=max + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" | \ + docker login ${{ env.REGISTRY }} -u ${{ secrets.REGISTRY_USER }} --password-stdin + + docker buildx build \ + --cache-from type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:cache \ + --cache-to type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:cache,mode=max \ + --tag ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:latest \ + --tag ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/webclient:${{ gitea.sha }} \ + --file webclient.Dockerfile \ + --push \ + . # ── DEPLOY ──────────────────────────────────────────────────────────────────── deploy: @@ -72,16 +68,15 @@ jobs: needs: [build-server, build-webclient] if: always() && !failure() && !cancelled() steps: - - name: Setup SSH + - name: Deploy via SSH run: | mkdir -p ~/.ssh echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts - - name: Deploy - run: | ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} bash << 'EOF' + set -e mkdir -p /opt/blockly3d cd /opt/blockly3d if [ ! -d .git ]; then