diff --git a/.github/workflows/add-prs-to-project.yml b/.github/workflows/add-prs-to-project.yml new file mode 100644 index 0000000..2d3f41a --- /dev/null +++ b/.github/workflows/add-prs-to-project.yml @@ -0,0 +1,22 @@ +name: Add new PRs to github project + +on: + pull_request_target: + types: + - opened + - ready_for_review + +permissions: {} + +jobs: + addprtoproject: + name: Add PR to GitHub Project + # Only run on the silverstripe account + if: github.repository_owner == 'silverstripe' + runs-on: ubuntu-latest + steps: + - name: Add PR to github project + uses: silverstripe/gha-add-pr-to-project@v1 + with: + app_id: ${{ vars.PROJECT_PERMISSIONS_APP_ID }} + private_key: ${{ secrets.PROJECT_PERMISSIONS_APP_PRIVATE_KEY }} diff --git a/.github/workflows/dispatch-ci.yml b/.github/workflows/dispatch-ci.yml new file mode 100644 index 0000000..4706965 --- /dev/null +++ b/.github/workflows/dispatch-ci.yml @@ -0,0 +1,21 @@ +name: Dispatch CI + +on: + # At 6:30 AM UTC, only on Monday and Tuesday + schedule: + - cron: '30 6 * * 1,2' + +permissions: {} + +jobs: + dispatch-ci: + name: Dispatch CI + # Only run cron on the colymba account + if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule') + runs-on: ubuntu-latest + permissions: + contents: read + actions: write + steps: + - name: Dispatch CI + uses: silverstripe/gha-dispatch-ci@v1 diff --git a/.github/workflows/keepalive.yml b/.github/workflows/keepalive.yml index 070ac60..0550cda 100644 --- a/.github/workflows/keepalive.yml +++ b/.github/workflows/keepalive.yml @@ -1,17 +1,21 @@ name: Keepalive on: - # At 11:55 PM UTC, on day 20 of the month + # At 3:15 AM UTC, on day 16 of the month schedule: - - cron: '55 23 20 * *' + - cron: '15 3 16 * *' workflow_dispatch: +permissions: {} + jobs: keepalive: name: Keepalive # Only run cron on the colymba account if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule') runs-on: ubuntu-latest + permissions: + actions: write steps: - name: Keepalive uses: silverstripe/gha-keepalive@v1 diff --git a/.github/workflows/merge-up.yml b/.github/workflows/merge-up.yml index e7954bd..fe80cb5 100644 --- a/.github/workflows/merge-up.yml +++ b/.github/workflows/merge-up.yml @@ -1,17 +1,22 @@ name: Merge-up on: - # At 11:55 PM UTC, only on Friday + # At 6:30 AM UTC, only on Friday schedule: - - cron: '55 23 * * 5' + - cron: '30 6 * * 5' workflow_dispatch: +permissions: {} + jobs: merge-up: name: Merge-up # Only run cron on the colymba account if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule') runs-on: ubuntu-latest + permissions: + contents: write + actions: write steps: - name: Merge-up uses: silverstripe/gha-merge-up@v1 diff --git a/.github/workflows/tag-patch-release.yml b/.github/workflows/tag-patch-release.yml new file mode 100644 index 0000000..388ee98 --- /dev/null +++ b/.github/workflows/tag-patch-release.yml @@ -0,0 +1,26 @@ +name: Tag patch release + +on: + # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch + workflow_dispatch: + inputs: + latest_local_sha: + description: The latest local sha + required: true + type: string + +permissions: {} + +jobs: + tagpatchrelease: + name: Tag patch release + # Only run cron on the colymba account + if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule') + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Tag release + uses: silverstripe/gha-tag-release@v2 + with: + latest_local_sha: ${{ inputs.latest_local_sha }} diff --git a/.github/workflows/update-js.yml b/.github/workflows/update-js.yml index 82feefd..296712a 100644 --- a/.github/workflows/update-js.yml +++ b/.github/workflows/update-js.yml @@ -2,9 +2,11 @@ name: Update JS on: workflow_dispatch: - # Run on a schedule of once per quarter + # At 10:50 AM UTC, on day 1 of the month, only in March and September schedule: - - cron: '55 23 1 */3 *' + - cron: '50 10 1 3,9 *' + +permissions: {} jobs: update-js: @@ -12,6 +14,10 @@ jobs: # Only run cron on the colymba account if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule') runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + actions: write steps: - name: Update JS uses: silverstripe/gha-update-js@v1 diff --git a/.upgrade.yml b/.upgrade.yml deleted file mode 100644 index be82823..0000000 --- a/.upgrade.yml +++ /dev/null @@ -1,10 +0,0 @@ -mappings: - GridFieldBulkActionDeleteHandler: Colymba\BulkManager\BulkAction\DeleteHandler - GridFieldBulkActionEditHandler: Colymba\BulkManager\BulkAction\EditHandler - GridFieldBulkActionHandler: Colymba\BulkManager\BulkAction\Handler - GridFieldBulkActionUnlinkHandler: Colymba\BulkManager\BulkAction\UnlinkHandler - GridFieldBulkManager: Colymba\BulkManager\BulkManager - BulkUploadField: Colymba\BulkUpload\BulkUploadField - GridFieldBulkImageUpload: Colymba\BulkUpload\GridFieldBulkImageUpload - GridFieldBulkUpload: Colymba\BulkUpload\BulkUploader - GridFieldBulkUpload_Request: Colymba\BulkUpload\BulkUploadHandler diff --git a/composer.json b/composer.json index 70eb9ce..dedf6b0 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,12 @@ "type": "silverstripe-vendormodule", "description": "SilverStripe GridField component to upload images/files and edit records in bulk", "homepage": "https://github.com/colymba/GridFieldBulkEditingTools", - "keywords": ["silverstripe", "bulk upload", "image upload", "gridfield bulk upload"], + "keywords": [ + "silverstripe", + "bulk upload", + "image upload", + "gridfield bulk upload" + ], "license": "BSD-3-Clause", "authors": [ { @@ -34,5 +39,9 @@ "Colymba\\BulkManager\\": "src/BulkManager/", "Colymba\\BulkUpload\\": "src/BulkUploader/" } + }, + "require-dev": { + "silverstripe/standards": "^1", + "phpstan/extension-installer": "^1.3" } } diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 0000000..beb9de3 --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,3 @@ +parameters: + paths: + - src