diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..3ad9cc5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + + # Note: Dependabot supports `pub` as of 2024 for Flutter. + - package-ecosystem: "pub" + directory: "/" + schedule: + interval: "weekly" + open-pull-requests-limit: 5 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..108cf86 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +name: CI + +on: + pull_request: + branches: [main] + push: + branches: [main] + +permissions: + contents: read + +jobs: + flutter: + name: flutter analyze + test + build apk + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v5 + + - name: Setup Java 17 (Android build) + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: 'stable' + cache: true + + - run: flutter --version + - run: flutter pub get + - name: flutter analyze (advisory) + run: | + flutter analyze --no-fatal-infos --no-fatal-warnings || echo "::warning::flutter analyze warnings (advisory)" + - run: flutter test + - name: Build APK (debug, no signing) + run: flutter build apk --debug + + - name: Upload APK artifact + uses: actions/upload-artifact@v4 + with: + name: solux-debug-apk + path: build/app/outputs/flutter-apk/app-debug.apk + retention-days: 7 diff --git a/.github/workflows/owner-auto-merge.yml b/.github/workflows/owner-auto-merge.yml new file mode 100644 index 0000000..fe274ba --- /dev/null +++ b/.github/workflows/owner-auto-merge.yml @@ -0,0 +1,27 @@ +name: Owner auto-merge + +on: + pull_request_target: + types: [opened, reopened, synchronize, ready_for_review] + +permissions: + pull-requests: write + contents: write + +jobs: + enable-auto-merge: + runs-on: ubuntu-22.04 + if: > + github.event.pull_request.user.login == 'satyakwok' && + github.event.pull_request.draft == false + steps: + - name: Enable auto-merge (squash) for owner PR + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_URL: ${{ github.event.pull_request.html_url }} + run: | + set -e + gh pr merge --auto --squash "$PR_URL" || { + echo "::warning::auto-merge enable returned non-zero — PR may already be merged, conflicted, or have auto-merge already enabled." + exit 0 + }