diff --git a/.github/workflows/batch_close_issues.yml b/.github/workflows/batch_close_issues.yml new file mode 100644 index 00000000..96d27386 --- /dev/null +++ b/.github/workflows/batch_close_issues.yml @@ -0,0 +1,25 @@ +name: "Batch close stale issues" + +on: + # Monthly + schedule: + - cron: '0 0 1 * *' + # Manual trigger + workflow_dispatch: + inputs: + +jobs: + stale: + runs-on: docker + steps: + - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + # Close everything older than ~6 months + days-before-issue-stale: 180 + days-before-issue-close: 0 + exempt-issue-labels: "do-not-autoclose,Meta request" + close-issue-message: "In an effort to have a more manageable issue backlog, we're closing older requests that weren't addressed since there's a low chance of it being addressed if it hasn't already. If your request is still relevant, please [open a new request](https://github.com/aniyomiorg/aniyomi-extensions/issues/new/choose)." + close-issue-reason: not_planned + ascending: true + operations-per-run: 250 diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index 49c37d3c..ab3a661b 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -8,13 +8,17 @@ on: - '!.github/**' - '.github/workflows/build_pull_request.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + env: CI_CHUNK_SIZE: 65 jobs: prepare: name: Prepare job - runs-on: ubuntu-22.04 + runs-on: docker outputs: individualMatrix: ${{ steps.generate-matrices.outputs.individualMatrix }} steps: @@ -45,7 +49,7 @@ jobs: build_individual: name: Build individual modules needs: prepare - runs-on: ubuntu-22.04 + runs-on: docker strategy: matrix: ${{ fromJSON(needs.prepare.outputs.individualMatrix) }} steps: @@ -57,11 +61,6 @@ jobs: with: java-version: 17 distribution: temurin - - - name: Set up Android SDK - uses: https://github.com/android-actions/setup-android@00854ea68c109d98c75d956347303bf7c45b0277 # v3 - with: - packages: "" - name: Set up Gradle uses: https://github.com/gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3 diff --git a/.github/workflows/build_push.yml b/.github/workflows/build_push.yml index cbd3271b..2c384d0d 100644 --- a/.github/workflows/build_push.yml +++ b/.github/workflows/build_push.yml @@ -94,11 +94,6 @@ jobs: with: java-version: 17 distribution: temurin - - - name: Set up Android SDK - uses: https://github.com/android-actions/setup-android@00854ea68c109d98c75d956347303bf7c45b0277 # v3 - with: - packages: "" - name: Prepare signing key run: | @@ -116,8 +111,8 @@ jobs: run: chmod +x ./gradlew && ./gradlew -p src assembleRelease - name: Upload APKs (chunk ${{ matrix.chunk }}) - uses: https://code.forgejo.org/forgejo/upload-artifact@16871d9e8cfcf27ff31822cac382bbb5450f1e1e # v4-patch - if: "github.repository == 'AlmightyHak/extensions-source'" + uses: https://github.com/actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 + if: "github.repository == 'Kohi-den/extensions-source'" with: name: "individual-apks-${{ matrix.chunk }}" path: "**/*.apk" @@ -133,32 +128,23 @@ jobs: if: "github.repository == 'AlmightyHak/extensions-source'" runs-on: ubuntu-22.04 steps: - - name: Setup rsync - run: | - sudo apt-get update && sudo apt install rsync -y - - name: Download APK artifacts - uses: https://code.forgejo.org/forgejo/download-artifact@d8d0a99033603453ad2255e58720b460a0555e1e # v4-patch + uses: https://github.com/actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # v4 with: path: ~/apk-artifacts - + - name: Set up JDK uses: https://github.com/actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4 with: java-version: 17 distribution: temurin - - - name: Set up Android SDK - uses: https://github.com/android-actions/setup-android@00854ea68c109d98c75d956347303bf7c45b0277 # v3 - with: - packages: "build-tools;34.0.0" - + - name: Checkout main branch uses: https://github.com/actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 with: ref: main path: main - + - name: Create repo artifacts run: | cd main @@ -166,7 +152,7 @@ jobs: INSPECTOR_LINK="$(curl -s "https://api.github.com/repos/aniyomiorg/aniyomi-extensions-inspector/releases/latest" | jq -r '.assets[0].browser_download_url')" curl -L "$INSPECTOR_LINK" -o ./Inspector.jar java -jar ./Inspector.jar "repo/apk" "output.json" "tmp" - python ./.github/scripts/create-repo.py + python ./.github/scripts/create-repo.py - name: Checkout repo branch uses: https://github.com/actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 diff --git a/.github/workflows/issue_moderator.yml b/.github/workflows/issue_moderator.yml new file mode 100644 index 00000000..d06d214c --- /dev/null +++ b/.github/workflows/issue_moderator.yml @@ -0,0 +1,51 @@ +name: Issue moderator + +on: + issues: + types: [opened, edited, reopened] + issue_comment: + types: [created] + +jobs: + autoclose: + runs-on: docker + steps: + - name: Moderate issues + uses: aniyomiorg/issue-moderator-action@v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + duplicate-label: Duplicate + + duplicate-check-enabled: true + duplicate-check-labels: | + ["Source request", "Domain changed"] + + existing-check-enabled: true + existing-check-labels: | + ["Source request", "Domain changed"] + + auto-close-rules: | + [ + { + "type": "body", + "regex": ".*DELETE THIS SECTION IF YOU HAVE READ AND ACKNOWLEDGED IT.*", + "message": "The acknowledgment section was not removed." + }, + { + "type": "body", + "regex": ".*\\* (Aniyomi version|Android version|Device): \\?.*", + "message": "Requested information in the template was not filled out." + }, + { + "type": "title", + "regex": ".*(Source name|Short description).*", + "message": "You did not fill out the description in the title." + }, + { + "type": "both", + "regex": ".*(?:fail(?:ed|ure|s)?|can\\s*(?:no|')?t|(?:not|un).*able|(?