name: "Development Deployment" on: push: branches: [ main, develop ] workflow_dispatch: jobs: deploy: name: Deploy to development runs-on: ubuntu-latest environment: development steps: - name: ☸️ Checkout uses: actions/checkout@v4 - name: 🐍 Setup Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: πŸ“¦ Install dependencies run: | pip install -r dev-requirements.txt - name: πŸ” Lint with flake8 run: flake8 src/ --max-line-length=88 --extend-ignore=E203,W503 - name: 🎨 Check formatting with black run: black --check src/ - name: πŸ§ͺ Run tests run: pytest --cov=src --cov-report=xml - name: πŸ“€ Upload coverage to Codecov uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} files: coverage.xml fail_ci_if_error: false - name: ☸️ Setup kubectl uses: azure/setup-kubectl@v4 with: version: 'v1.28.0' - name: πŸ” Configure Kubeconfig uses: azure/k8s-set-context@v4 with: method: kubeconfig kubeconfig: ${{ secrets.KUBECONFIG_DEV }} - name: πŸš€ Install Fission CLI run: | curl -L https://github.com/fission/fission/releases/latest/download/fission-linux-amd64 -o /tmp/fission sudo install /tmp/fission /usr/local/bin/fission fission check - name: πŸ“¦ Build and Deploy (dev) run: | echo "Deploying to development environment..." fission deploy --dev - name: πŸ”” Notify success if: always() uses: actions/github-script@v7 with: script: | const status = '${{ job.status }}'; const emoji = status === 'success' ? '🟒' : 'πŸ”΄'; const message = `${emoji} Dev deployment ${status} for ${{ github.repository }}@${{ github.sha }}\nCommit: ${{ github.event.commits[0].message }}`; // Send to Slack/Telegram/etc - customize as needed console.log(message);