From f5568e105812d419bc354da8d3c3617223f70fb4 Mon Sep 17 00:00:00 2001 From: ValueOn AG Date: Sun, 24 May 2026 02:34:19 +0200 Subject: [PATCH] refactor: migrate to Forgejo workflows, normalize env file names, remove GitHub Actions Co-authored-by: Cursor --- ...> main_service-main-teams-browser-bot.yml} | 6 +- .github/workflows/build-deploy.yml | 132 ------------------ env-teamsbot-dev.env => env-dev.env | 0 env-teamsbot-main.env => env-main.env | 0 4 files changed, 3 insertions(+), 135 deletions(-) rename .forgejo/workflows/{deploy.yml => main_service-main-teams-browser-bot.yml} (95%) delete mode 100644 .github/workflows/build-deploy.yml rename env-teamsbot-dev.env => env-dev.env (100%) rename env-teamsbot-main.env => env-main.env (100%) diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/main_service-main-teams-browser-bot.yml similarity index 95% rename from .forgejo/workflows/deploy.yml rename to .forgejo/workflows/main_service-main-teams-browser-bot.yml index c31db05..632ba02 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/main_service-main-teams-browser-bot.yml @@ -20,8 +20,8 @@ jobs: - name: Set environment run: | - cp env-teamsbot-main.env .env - rm -f env-teamsbot-*.env + cp env-main.env .env + rm -f env-*.env - name: Setup SSH run: | @@ -45,7 +45,7 @@ jobs: --exclude 'dist' \ --exclude 'output' \ --exclude '__pycache__' \ - --exclude 'env-teamsbot-*.env' \ + --exclude 'env-*.env' \ ./ ${{ env.SERVER_USER }}@${{ env.SERVER_HOST }}:${{ env.APP_DIR }}/ - name: Build and start container diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml deleted file mode 100644 index 8c40945..0000000 --- a/.github/workflows/build-deploy.yml +++ /dev/null @@ -1,132 +0,0 @@ -name: Build and Deploy to ACR - -on: - push: - branches: - - main - - dev - workflow_dispatch: - -# Cancel in-progress runs when a new run is triggered (saves logs/storage) -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - IMAGE_NAME: teams-browser-bot - RESOURCE_GROUP: resource-core - CONTAINER_APP_NAME: cae-poweron-shared - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v5 - - - name: Determine environment - id: env - run: | - if [ "${{ github.ref }}" == "refs/heads/dev" ]; then - echo "env_file=env-teamsbot-dev.env" >> $GITHUB_OUTPUT - else - echo "env_file=env-teamsbot-main.env" >> $GITHUB_OUTPUT - fi - - - name: Set environment - run: | - cp ${{ steps.env.outputs.env_file }} .env - rm -f env-teamsbot-*.env - - - name: Log in to Azure Container Registry - uses: docker/login-action@v4 - with: - registry: ${{ secrets.ACR_LOGIN_SERVER }} - username: ${{ secrets.ACR_USERNAME }} - password: ${{ secrets.ACR_PASSWORD }} - - - name: Build and push Docker image - uses: docker/build-push-action@v6 - with: - context: . - push: true - tags: | - ${{ secrets.ACR_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:latest - ${{ secrets.ACR_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - - - name: Azure Login - uses: azure/login@v3 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - - - name: Deploy to Container App - uses: azure/cli@v2 - with: - azcliversion: latest - inlineScript: | - SUFFIX=$(echo "${{ github.sha }}" | cut -c1-8) - - # Update image AND ensure minReplicas=1 so the container actually starts. - # Without --min-replicas 1, Azure scales to zero and the bot never boots. - az containerapp update \ - --name ${{ env.CONTAINER_APP_NAME }} \ - --resource-group ${{ env.RESOURCE_GROUP }} \ - --image ${{ secrets.ACR_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \ - --revision-suffix "deploy-${SUFFIX}" \ - --min-replicas 1 \ - --max-replicas 1 - - - name: Verify deployment - uses: azure/cli@v2 - with: - azcliversion: latest - inlineScript: | - sleep 15 - - # Get the revision we just deployed (sorted by creation date, newest first) - EXPECTED_SUFFIX="deploy-$(echo "${{ github.sha }}" | cut -c1-8)" - LATEST_REVISION=$(az containerapp revision list \ - --name ${{ env.CONTAINER_APP_NAME }} \ - --resource-group ${{ env.RESOURCE_GROUP }} \ - --query "sort_by(@, &properties.createdTime) | [-1].name" -o tsv) - echo "Latest revision: $LATEST_REVISION" - - # Check provisioning state - STATE=$(az containerapp revision show \ - --name ${{ env.CONTAINER_APP_NAME }} \ - --resource-group ${{ env.RESOURCE_GROUP }} \ - --revision "$LATEST_REVISION" \ - --query "properties.runningState" -o tsv 2>/dev/null || echo "unknown") - echo "Revision state: $STATE" - - # Activate revision if not running, then restart - if [ "$STATE" != "Running" ]; then - echo "Revision not running yet, activating..." - az containerapp revision activate \ - --name ${{ env.CONTAINER_APP_NAME }} \ - --resource-group ${{ env.RESOURCE_GROUP }} \ - --revision "$LATEST_REVISION" || true - sleep 5 - fi - - az containerapp revision restart \ - --name ${{ env.CONTAINER_APP_NAME }} \ - --resource-group ${{ env.RESOURCE_GROUP }} \ - --revision "$LATEST_REVISION" || true - - # Final status check - sleep 10 - REPLICAS=$(az containerapp revision show \ - --name ${{ env.CONTAINER_APP_NAME }} \ - --resource-group ${{ env.RESOURCE_GROUP }} \ - --revision "$LATEST_REVISION" \ - --query "properties.replicas" -o tsv 2>/dev/null || echo "0") - echo "Running replicas: $REPLICAS" - - - name: Summary - run: | - echo "### Deployed successfully! :rocket:" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Image: \`${{ secrets.ACR_LOGIN_SERVER }}/${{ env.IMAGE_NAME }}:${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY - echo "Env: \`${{ steps.env.outputs.env_file }}\`" >> $GITHUB_STEP_SUMMARY diff --git a/env-teamsbot-dev.env b/env-dev.env similarity index 100% rename from env-teamsbot-dev.env rename to env-dev.env diff --git a/env-teamsbot-main.env b/env-main.env similarity index 100% rename from env-teamsbot-main.env rename to env-main.env