diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml new file mode 100644 index 0000000..3adde84 --- /dev/null +++ b/.gitea/workflows/dev.yml @@ -0,0 +1,77 @@ +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 }}" \ No newline at end of file