diff --git a/.mokogitea/workflows/deploy-mokogitea.yml b/.mokogitea/workflows/deploy-mokogitea.yml index ea35000e10..188266406b 100644 --- a/.mokogitea/workflows/deploy-mokogitea.yml +++ b/.mokogitea/workflows/deploy-mokogitea.yml @@ -8,7 +8,7 @@ on: workflow_dispatch: inputs: version: - description: 'Version tag (e.g. v1.26.1-moko.04.00.00)' + description: 'Version tag (e.g. v1.26.1-moko.05.01.00)' required: true default: 'latest' environment: @@ -30,6 +30,7 @@ env: DEPLOY_HOST: git.mokoconsulting.tech DEPLOY_PORT: 2918 DEPLOY_USER: mokoconsulting + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: deploy: @@ -47,15 +48,30 @@ jobs: echo "source_dir=/opt/gitea/source" >> $GITHUB_OUTPUT echo "branch=main" >> $GITHUB_OUTPUT echo "tag=${VERSION}" >> $GITHUB_OUTPUT + echo "instance_url=https://git.mokoconsulting.tech" >> $GITHUB_OUTPUT else echo "compose_dir=/opt/gitea-dev" >> $GITHUB_OUTPUT echo "container=mokogitea-dev" >> $GITHUB_OUTPUT echo "source_dir=/opt/gitea-dev/source" >> $GITHUB_OUTPUT echo "branch=dev" >> $GITHUB_OUTPUT echo "tag=${VERSION}-dev" >> $GITHUB_OUTPUT + echo "instance_url=https://git.dev.mokoconsulting.tech" >> $GITHUB_OUTPUT fi - - name: Build, push, and deploy via SSH + - name: Enable maintenance mode + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + INSTANCE_URL: ${{ steps.config.outputs.instance_url }} + run: | + echo "Enabling maintenance mode on ${INSTANCE_URL}..." + curl -sf -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + "${INSTANCE_URL}/-/admin/config" \ + -d 'key=instance.maintenance_mode&value={"AdminWebAccessOnly":true}' \ + || echo "WARNING: Could not enable maintenance mode (instance may be down)" + + - name: Build and deploy via SSH env: SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_SSH_KEY }} TAG: ${{ steps.config.outputs.tag }} @@ -124,6 +140,20 @@ jobs: exit 1 " + - name: Disable maintenance mode + if: always() + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + INSTANCE_URL: ${{ steps.config.outputs.instance_url }} + run: | + echo "Disabling maintenance mode on ${INSTANCE_URL}..." + curl -sf -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + "${INSTANCE_URL}/-/admin/config" \ + -d 'key=instance.maintenance_mode&value={"AdminWebAccessOnly":false}' \ + || echo "WARNING: Could not disable maintenance mode" + - name: Verify run: | sleep 5