name: Dev Build on: pull_request: branches: [dev] push: branches: [dev] jobs: build-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: '9.0.x' - name: Restore backend run: dotnet restore - name: Build backend run: dotnet build --no-restore --configuration Release - name: Test backend run: dotnet test --no-build --configuration Release - name: Setup Node uses: actions/setup-node@v4 with: node-version: "24" - name: Install frontend deps run: npm ci working-directory: ./frontend - name: Build frontend run: npm run build working-directory: ./frontend deploy-dev: needs: build-test if: gitea.event_name == 'push' runs-on: ubuntu-latest steps: - name: Deploy dev run: | echo "${{ secrets.DEV_DEPLOY_SSH_KEY }}" > /tmp/dev_key chmod 600 /tmp/dev_key ssh -i /tmp/dev_key -o StrictHostKeyChecking=no \ ${{ secrets.DEV_DEPLOY_USER }}@${{ secrets.DEV_DEPLOY_HOST }} \ "${{ secrets.DEV_DEPLOY_PATH }}/deploy.sh" notify-success: needs: [build-test, deploy-dev] if: success() && gitea.event_name == 'push' runs-on: ubuntu-latest steps: - name: Notify Slack success run: | curl -X POST -H 'Content-type: application/json' \ --data "{\"text\":\"✅ Extrudex dev deployed successfully from dev branch.\"}" \ "${{ secrets.SLACK_WEBHOOK_URL }}" notify-failure: needs: [build-test, deploy-dev] if: failure() runs-on: ubuntu-latest steps: - name: Notify Slack failure run: | curl -X POST -H 'Content-type: application/json' \ --data "{\"text\":\"🚨 Extrudex dev pipeline failed. Check Gitea Actions for details.\"}" \ "${{ secrets.SLACK_WEBHOOK_URL }}"