diff --git a/.github/workflows/appbuild.yml b/.gitea/workflows/appbuild.yml
similarity index 95%
rename from .github/workflows/appbuild.yml
rename to .gitea/workflows/appbuild.yml
index 95a945b73..076cc3e11 100644
--- a/.github/workflows/appbuild.yml
+++ b/.gitea/workflows/appbuild.yml
@@ -3,9 +3,7 @@ name: Package build
on:
push:
branches:
- - main
- - master
- - stable*
+ - draggable
jobs:
build:
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index 70dc36df3..000000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1,2 +0,0 @@
-# App maintainers
-* @luka-nextcloud @grnd-alt @elzody
diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md
deleted file mode 100644
index 05a2002a8..000000000
--- a/.github/ISSUE_TEMPLATE/Bug_report.md
+++ /dev/null
@@ -1,120 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-
----
-
-
-
-
-
-### How to use GitHub
-
-* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
-* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
-* Subscribe to receive notifications on status change and new comments.
-
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-**To Reproduce**
-Steps to reproduce the behavior:
-1. Go to '...'
-2. Click on '....'
-3. Scroll down to '....'
-4. See error
-
-**Expected behavior**
-A clear and concise description of what you expected to happen.
-
-**Screenshots**
-If applicable, add screenshots to help explain your problem.
-
-**Client details:**
- - OS: [e.g. iOS]
- - Browser [e.g. chrome, safari]
- - Version [e.g. 22]
- - Device: [e.g. iPhone6, desktop]
-
-
-Server details
-
-
-**Operating system**:
-
-**Web server:**
-
-**Database:**
-
-**PHP version:**
-
-**Nextcloud version:** (see Nextcloud admin page)
-
-**Where did you install Nextcloud from:**
-
-**Signing status:**
-
-```
-Login as admin user into your Nextcloud and access
-http://example.com/index.php/settings/integrity/failed
-paste the results here.
-```
-
-**List of activated apps:**
-
-```
-If you have access to your command line run e.g.:
-sudo -u www-data php occ app:list
-from within your Nextcloud installation folder
-```
-
-**Nextcloud configuration:**
-
-```
-If you have access to your command line run e.g.:
-sudo -u www-data php occ config:list system
-from within your Nextcloud installation folder
-
-or
-
-Insert your config.php content here
-Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)
-```
-
-**Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/...
-
-
-
-
-Logs
-
-#### Nextcloud log (data/nextcloud.log)
-```
-Insert your Nextcloud log here
-```
-
-#### Browser log
-```
-Insert your browser log here, this could for example include:
-
-a) The javascript console log
-b) The network log
-c) ...
-```
-
-
diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md
deleted file mode 100644
index 3d585354d..000000000
--- a/.github/ISSUE_TEMPLATE/Feature_request.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-
----
-
-
-
-
-
-### How to use GitHub
-
-* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
-* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
-* Subscribe to receive notifications on status change and new comments.
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index b70d53b1e..000000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-version: 2
-updates:
-- package-ecosystem: npm
- directory: "/"
- target-branch: "main"
- schedule:
- interval: weekly
- day: saturday
- time: "03:00"
- timezone: Europe/Paris
- open-pull-requests-limit: 10
- reviewers:
- - juliushaertl
- - luka-nextcloud
-
-- package-ecosystem: npm
- target-branch: stable32
- versioning-strategy: lockfile-only
- directory: "/"
- schedule:
- interval: weekly
- day: saturday
- time: "03:15"
- timezone: Europe/Paris
- ignore:
- - dependency-name: "*"
- update-types: ["version-update:semver-major"]
- open-pull-requests-limit: 30
- labels:
- - 3. to review
- - dependencies
-
-- package-ecosystem: npm
- target-branch: stable31
- versioning-strategy: lockfile-only
- directory: "/"
- schedule:
- interval: weekly
- day: saturday
- time: "03:15"
- timezone: Europe/Paris
- ignore:
- - dependency-name: "*"
- update-types: ["version-update:semver-major"]
- open-pull-requests-limit: 30
- labels:
- - 3. to review
- - dependencies
-
-- package-ecosystem: npm
- target-branch: stable30
- versioning-strategy: lockfile-only
- directory: "/"
- schedule:
- interval: weekly
- day: saturday
- time: "03:30"
- timezone: Europe/Paris
- ignore:
- - dependency-name: "*"
- update-types: ["version-update:semver-major"]
- open-pull-requests-limit: 30
- labels:
- - 3. to review
- - dependencies
-
-- package-ecosystem: composer
- directory: "/"
- schedule:
- interval: weekly
- day: saturday
- time: "03:45"
- timezone: Europe/Paris
- open-pull-requests-limit: 10
- reviewers:
- - juliushaertl
- - luka-nextcloud
-
-- package-ecosystem: composer
- directory: "/tests/integration"
- schedule:
- interval: weekly
- day: saturday
- time: "04:00"
- timezone: Europe/Paris
- open-pull-requests-limit: 10
- reviewers:
- - juliushaertl
- - luka-nextcloud
-
-- package-ecosystem: github-actions
- directory: "/"
- schedule:
- interval: weekly
- day: saturday
- time: "04:15"
- timezone: Europe/Paris
- open-pull-requests-limit: 10
- reviewers:
- - juliushaertl
- - luka-nextcloud
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
deleted file mode 100644
index 82efd9397..000000000
--- a/.github/pull_request_template.md
+++ /dev/null
@@ -1,17 +0,0 @@
-
-* Resolves: #
-* Target version: main
-
-### Summary
-
-
-### TODO
-
-- [ ] ...
-
-### Checklist
-
-- [ ] Code is properly formatted
-- [ ] Sign-off message is added to all commits
-- [ ] Tests (unit, integration, api and/or acceptance) are included
-- [ ] Documentation (manuals or wiki) has been updated or is not required
diff --git a/.github/workflows/appstore-build-publish.yml b/.github/workflows/appstore-build-publish.yml
deleted file mode 100644
index e7312c89d..000000000
--- a/.github/workflows/appstore-build-publish.yml
+++ /dev/null
@@ -1,191 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Build and publish app release
-
-on:
- release:
- types: [published]
-
-permissions:
- contents: write
-
-jobs:
- build_and_publish:
- runs-on: ubuntu-latest
-
- # Only allowed to be run on nextcloud-releases repositories
- if: ${{ github.repository_owner == 'nextcloud-releases' }}
-
- steps:
- - name: Check actor permission
- uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
- with:
- require: write
-
- - name: Set app env
- run: |
- # Split and keep last
- echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
-
- - name: Checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- path: ${{ env.APP_NAME }}
-
- - name: Get app version number
- id: app-version
- uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # master
- with:
- filename: ${{ env.APP_NAME }}/appinfo/info.xml
- expression: "//info//version/text()"
-
- - name: Validate app version against tag
- run: |
- [ "${{ env.APP_VERSION }}" = "v${{ fromJSON(steps.app-version.outputs.result).version }}" ]
-
- - name: Get appinfo data
- id: appinfo
- uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # master
- with:
- filename: ${{ env.APP_NAME }}/appinfo/info.xml
- expression: "//info//dependencies//nextcloud/@min-version"
-
- - name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
- id: versions
- # Continue if no package.json
- continue-on-error: true
- with:
- path: ${{ env.APP_NAME }}
- fallbackNode: '^20'
- fallbackNpm: '^10'
-
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- # Skip if no package.json
- if: ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
- with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
-
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- # Skip if no package.json
- if: ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
-
- - name: Get php version
- id: php-versions
- uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
- with:
- filename: ${{ env.APP_NAME }}/appinfo/info.xml
-
- - name: Set up php ${{ steps.php-versions.outputs.php-min }}
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: ${{ steps.php-versions.outputs.php-min }}
- coverage: none
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Check composer.json
- id: check_composer
- uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
- with:
- files: "${{ env.APP_NAME }}/composer.json"
-
- - name: Install composer dependencies
- if: steps.check_composer.outputs.files_exists == 'true'
- run: |
- cd ${{ env.APP_NAME }}
- composer install --no-dev
-
- - name: Build ${{ env.APP_NAME }}
- # Skip if no package.json
- if: ${{ steps.versions.outputs.nodeVersion }}
- env:
- CYPRESS_INSTALL_BINARY: 0
- run: |
- cd ${{ env.APP_NAME }}
- npm ci
- npm run build --if-present
-
- - name: Check Krankerl config
- id: krankerl
- uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
- with:
- files: ${{ env.APP_NAME }}/krankerl.toml
-
- - name: Install Krankerl
- if: steps.krankerl.outputs.files_exists == 'true'
- run: |
- wget https://github.com/ChristophWurst/krankerl/releases/download/v0.14.0/krankerl_0.14.0_amd64.deb
- sudo dpkg -i krankerl_0.14.0_amd64.deb
-
- - name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with krankerl
- if: steps.krankerl.outputs.files_exists == 'true'
- run: |
- cd ${{ env.APP_NAME }}
- krankerl package
-
- - name: Package ${{ env.APP_NAME }} ${{ env.APP_VERSION }} with makefile
- if: steps.krankerl.outputs.files_exists != 'true'
- run: |
- cd ${{ env.APP_NAME }}
- make appstore
-
- - name: Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
- continue-on-error: true
- id: server-checkout
- run: |
- NCVERSION='${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}'
- wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
- unzip latest-$NCVERSION.zip
-
- - name: Checkout server master fallback
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- if: ${{ steps.server-checkout.outcome != 'success' }}
- with:
- persist-credentials: false
- submodules: true
- repository: nextcloud/server
- path: nextcloud
-
- - name: Sign app
- run: |
- # Extracting release
- cd ${{ env.APP_NAME }}/build/artifacts
- tar -xvf ${{ env.APP_NAME }}.tar.gz
- cd ../../../
- # Setting up keys
- echo '${{ secrets.APP_PRIVATE_KEY }}' > ${{ env.APP_NAME }}.key
- wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
- # Signing
- php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
- # Rebuilding archive
- cd ${{ env.APP_NAME }}/build/artifacts
- tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
-
- - name: Attach tarball to github release
- uses: svenstaro/upload-release-action@81c65b7cd4de9b2570615ce3aad67a41de5b1a13 # v2
- id: attach_to_release
- with:
- repo_token: ${{ secrets.GITHUB_TOKEN }}
- file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
- asset_name: ${{ env.APP_NAME }}-${{ env.APP_VERSION }}.tar.gz
- tag: ${{ github.ref }}
- overwrite: true
-
- - name: Upload app to Nextcloud appstore
- uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
- with:
- app_name: ${{ env.APP_NAME }}
- appstore_token: ${{ secrets.APPSTORE_TOKEN }}
- download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
- app_private_key: ${{ secrets.APP_PRIVATE_KEY }}
diff --git a/.github/workflows/cypress-e2e.yml b/.github/workflows/cypress-e2e.yml
deleted file mode 100644
index a01092af4..000000000
--- a/.github/workflows/cypress-e2e.yml
+++ /dev/null
@@ -1,153 +0,0 @@
-name: Cypress
-
-on:
- pull_request:
- push:
- branches:
- - main
- - stable*
-
-env:
- APP_NAME: deck
- CYPRESS_baseUrl: http://localhost:8081/index.php
-
-jobs:
- cypress:
-
- runs-on: 'ubuntu-latest'
-
- strategy:
- fail-fast: false
- matrix:
- node-version: [20.x]
- # containers: [1, 2, 3]
- php-versions: [ '8.2' ]
- server-versions: [ 'master' ]
-
- env:
- extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
- key: cache-v1
-
- services:
- postgres:
- image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
- ports:
- - 4444:5432/tcp
- env:
- POSTGRES_USER: root
- POSTGRES_PASSWORD: rootpassword
- POSTGRES_DB: nextcloud
- options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
-
- steps:
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.4.0
- with:
- node-version: ${{ matrix.node-version }}
-
- - name: Register text Git reference
- run: |
- text_app_ref="$(if [ "${{ matrix.server-versions }}" = "master" ]; then echo -n "main"; else echo -n "${{ matrix.server-versions }}"; fi)"
- echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
-
- - name: Checkout server
- uses: actions/checkout@v4.2.2
- with:
- repository: nextcloud/server
- ref: ${{ matrix.server-versions }}
-
- - name: Checkout submodules
- shell: bash
- run: |
- auth_header="$(git config --local --get http.https://github.com/.extraheader)"
- git submodule sync --recursive
- git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
-
- - name: Checkout ${{ env.APP_NAME }}
- uses: actions/checkout@v4.2.2
- with:
- path: apps/${{ env.APP_NAME }}
-
- - name: Checkout text
- uses: actions/checkout@v4.2.2
- with:
- repository: nextcloud/text
- ref: ${{ env.text_app_ref }}
- path: apps/text
-
- - name: Setup cache environment
- id: extcache
- uses: shivammathur/cache-extensions@v1
- with:
- php-version: ${{ matrix.php-versions }}
- extensions: ${{ env.extensions }}
- key: ${{ env.key }}
-
- - name: Cache extensions
- uses: actions/cache@v4
- with:
- path: ${{ steps.extcache.outputs.dir }}
- key: ${{ steps.extcache.outputs.key }}
- restore-keys: ${{ steps.extcache.outputs.key }}
-
- - name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@2.34.1
- with:
- php-version: ${{ matrix.php-versions }}
- extensions: ${{ env.extensions }}
- ini-values:
- apc.enable_cli=on
- coverage: none
-
- - name: Install composer dependencies
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer install --no-dev
-
- - name: Set up Nextcloud
- env:
- DB_PORT: 4444
- PHP_CLI_SERVER_WORKERS: 20
- run: |
- mkdir data
- echo '"\OC\Memcache\APCu","hashing_default_password"=>true];' > config/config.php
- php occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
- php occ background:cron
- php -f index.php
- php -S 0.0.0.0:8081 &
- export OC_PASS=1234561
- php occ user:add --password-from-env user1
- php occ user:add --password-from-env user2
- php occ app:enable deck
- php occ app:list
- curl -v http://localhost:8081/index.php/login
-
- - name: Cypress run
- uses: cypress-io/github-action@v6
- with:
- build: npm run dev
- record: false
- parallel: false
- browser: chrome
- wait-on: '${{ env.CYPRESS_baseUrl }}'
- working-directory: 'apps/${{ env.APP_NAME }}'
- config: defaultCommandTimeout=10000,video=false
- env:
- CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
- npm_package_name: ${{ env.APP_NAME }}
-
- - name: Upload test failure screenshots
- uses: actions/upload-artifact@v4
- if: failure()
- with:
- name: Upload screenshots
- path: apps/${{ env.APP_NAME }}/cypress/screenshots/
- retention-days: 5
-
- - name: Upload nextcloud logs
- uses: actions/upload-artifact@v4
- if: failure()
- with:
- name: Upload nextcloud log
- path: data/nextcloud.log
- retention-days: 5
diff --git a/.github/workflows/dependabot-approve-merge.yml b/.github/workflows/dependabot-approve-merge.yml
deleted file mode 100644
index ed902d928..000000000
--- a/.github/workflows/dependabot-approve-merge.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Dependabot
-
-on:
- pull_request_target: # zizmor: ignore[dangerous-triggers]
- branches:
- - main
- - master
- - stable*
-
-permissions:
- contents: read
-
-concurrency:
- group: dependabot-approve-merge-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- auto-approve-merge:
- if: github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'renovate[bot]'
- runs-on: ubuntu-latest-low
- permissions:
- # for hmarr/auto-approve-action to approve PRs
- pull-requests: write
-
- steps:
- - name: Disabled on forks
- if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
- run: |
- echo 'Can not approve PRs from forks'
- exit 1
-
- # GitHub actions bot approve
- - uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
-
- # Nextcloud bot approve and merge request
- - uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
- with:
- target: minor
- github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
diff --git a/.github/workflows/fixup.yml b/.github/workflows/fixup.yml
deleted file mode 100644
index 69da2bbb0..000000000
--- a/.github/workflows/fixup.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Block fixup and squash commits
-
-on:
- pull_request:
- types: [opened, ready_for_review, reopened, synchronize]
-
-permissions:
- contents: read
-
-concurrency:
- group: fixup-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- commit-message-check:
- if: github.event.pull_request.draft == false
-
- permissions:
- pull-requests: write
- name: Block fixup and squash commits
-
- runs-on: ubuntu-latest-low
-
- steps:
- - name: Run check
- uses: skjnldsv/block-fixup-merge-action@c138ea99e45e186567b64cf065ce90f7158c236a # v2
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
deleted file mode 100644
index 1519f74eb..000000000
--- a/.github/workflows/integration.yml
+++ /dev/null
@@ -1,165 +0,0 @@
-name: Integration tests
-
-on:
- pull_request:
- paths:
- - '.github/workflows/integration.yml'
- - 'appinfo/**'
- - 'lib/**'
- - 'templates/**'
- - 'tests/**'
- - 'composer.json'
- - 'composer.lock'
- push:
- branches:
- - main
- - master
- - stable*
-
-env:
- APP_NAME: deck
-
-jobs:
- integration:
- runs-on: ubuntu-latest
-
- strategy:
- fail-fast: false
- matrix:
- php-versions: ['8.1']
- databases: ['sqlite', 'mysql', 'pgsql']
- server-versions: ['master']
-
- name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
-
- services:
- postgres:
- image: postgres:14
- ports:
- - 4445:5432/tcp
- env:
- POSTGRES_USER: root
- POSTGRES_PASSWORD: rootpassword
- POSTGRES_DB: nextcloud
- options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
- mysql:
- image: mariadb:10.5
- ports:
- - 4444:3306/tcp
- env:
- MYSQL_ROOT_PASSWORD: rootpassword
- options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
-
- steps:
- - name: Checkout server
- uses: actions/checkout@v4.2.2
- with:
- repository: nextcloud/server
- ref: ${{ matrix.server-versions }}
-
- - name: Checkout submodules
- shell: bash
- run: |
- auth_header="$(git config --local --get http.https://github.com/.extraheader)"
- git submodule sync --recursive
- git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- cd build/integration && composer require --dev phpunit/phpunit:~9
-
- - name: Checkout app
- uses: actions/checkout@v4.2.2
- with:
- path: apps/${{ env.APP_NAME }}
-
- - name: Checkout activity
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- repository: nextcloud/activity
- ref: ${{ matrix.server-versions }}
- path: apps/activity
-
- - name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@2.34.1
- with:
- php-version: ${{ matrix.php-versions }}
- extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql, apcu, gd
- ini-values:
- apc.enable_cli=on
- coverage: none
-
- - name: Set up dependencies
- working-directory: apps/${{ env.APP_NAME }}
- run: composer i --no-dev
-
- - name: Set up Nextcloud
- run: |
- if [ "${{ matrix.databases }}" = "mysql" ]; then
- export DB_PORT=4444
- elif [ "${{ matrix.databases }}" = "pgsql" ]; then
- export DB_PORT=4445
- fi
- mkdir data
- ./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
- ./occ config:system:set hashing_default_password --value=true --type=boolean
- ./occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"
- ./occ config:system:set memcache.distributed --value="\\OC\\Memcache\\APCu"
- cat config/config.php
- ./occ user:list
- ./occ app:enable --force ${{ env.APP_NAME }}
- ./occ config:system:set query_log_file --value "$PWD/query.log"
- php -S localhost:8080 &
-
- - name: Run behat
- working-directory: apps/${{ env.APP_NAME }}/tests/integration
- run: ./run.sh
-
- - name: Print log
- if: always()
- run: cat data/nextcloud.log
-
- - name: Query count
- if: ${{ matrix.databases == 'mysql' }}
- uses: actions/github-script@v7
- with:
- github-token: ${{secrets.GITHUB_TOKEN}}
- script: |
- let myOutput = ''
- let myError = ''
-
- const options = {}
- options.listeners = {
- stdout: (data) => {
- myOutput += data.toString()
- },
- stderr: (data) => {
- myError += data.toString()
- }
- }
- await exec.exec(`/bin/bash -c "cat query.log | wc -l"`, [], options)
- msg = myOutput
- const queryCount = parseInt(myOutput, 10)
-
- myOutput = ''
- await exec.exec('cat', ['apps/${{ env.APP_NAME }}/tests/integration/base-query-count.txt'], options)
- const baseCount = parseInt(myOutput, 10)
-
- const absoluteIncrease = queryCount - baseCount
- const relativeIncrease = baseCount <= 0 ? 100 : (parseInt((absoluteIncrease / baseCount * 10000), 10) / 100)
-
- if (absoluteIncrease >= 100 || relativeIncrease > 5) {
- const comment = `🐢 Performance warning.\nIt looks like the query count of the integration tests increased with this PR.\nDatabase query count is now ` + queryCount + ' was ' + baseCount + ' (+' + relativeIncrease + '%)\nPlease check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.'
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: comment
- })
- }
- if (queryCount < 100) {
- const comment = `🐈 Performance messuring seems broken. Failed to get query count.`
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: comment
- })
- }
diff --git a/.github/workflows/lint-eslint.yml b/.github/workflows/lint-eslint.yml
deleted file mode 100644
index de59a010d..000000000
--- a/.github/workflows/lint-eslint.yml
+++ /dev/null
@@ -1,100 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Lint eslint
-
-on: pull_request
-
-permissions:
- contents: read
-
-concurrency:
- group: lint-eslint-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- changes:
- runs-on: ubuntu-latest-low
- permissions:
- contents: read
- pull-requests: read
-
- outputs:
- src: ${{ steps.changes.outputs.src}}
-
- steps:
- - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
- id: changes
- continue-on-error: true
- with:
- filters: |
- src:
- - '.github/workflows/**'
- - 'src/**'
- - 'appinfo/info.xml'
- - 'package.json'
- - 'package-lock.json'
- - 'tsconfig.json'
- - '.eslintrc.*'
- - '.eslintignore'
- - '**.js'
- - '**.ts'
- - '**.vue'
-
- lint:
- runs-on: ubuntu-latest
-
- needs: changes
- if: needs.changes.outputs.src != 'false'
-
- name: NPM lint
-
- steps:
- - name: Checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
- id: versions
- with:
- fallbackNode: '^20'
- fallbackNpm: '^10'
-
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
- with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
-
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
-
- - name: Install dependencies
- env:
- CYPRESS_INSTALL_BINARY: 0
- PUPPETEER_SKIP_DOWNLOAD: true
- run: npm ci
-
- - name: Lint
- run: npm run lint
-
- summary:
- permissions:
- contents: none
- runs-on: ubuntu-latest-low
- needs: [changes, lint]
-
- if: always()
-
- # This is the summary, we just avoid to rename it so that branch protection rules still match
- name: eslint
-
- steps:
- - name: Summary status
- run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/lint-php-cs.yml b/.github/workflows/lint-php-cs.yml
deleted file mode 100644
index 14e401869..000000000
--- a/.github/workflows/lint-php-cs.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Lint php-cs
-
-on: pull_request
-
-permissions:
- contents: read
-
-concurrency:
- group: lint-php-cs-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- lint:
- runs-on: ubuntu-latest
-
- name: php-cs
-
- steps:
- - name: Checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Get php version
- id: versions
- uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
-
- - name: Set up php${{ steps.versions.outputs.php-min }}
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: ${{ steps.versions.outputs.php-min }}
- extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
- coverage: none
- ini-file: development
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Install dependencies
- run: |
- composer remove nextcloud/ocp --dev
- composer i
-
- - name: Lint
- run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 )
diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
deleted file mode 100644
index 9e2de3035..000000000
--- a/.github/workflows/lint-php.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Lint php
-
-on: pull_request
-
-permissions:
- contents: read
-
-concurrency:
- group: lint-php-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- matrix:
- runs-on: ubuntu-latest-low
- outputs:
- php-versions: ${{ steps.versions.outputs.php-versions }}
- steps:
- - name: Checkout app
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Get version matrix
- id: versions
- uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
-
- php-lint:
- runs-on: ubuntu-latest
- needs: matrix
- strategy:
- matrix:
- php-versions: ${{fromJson(needs.matrix.outputs.php-versions)}}
-
- name: php-lint
-
- steps:
- - name: Checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: ${{ matrix.php-versions }}
- extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
- coverage: none
- ini-file: development
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Lint
- run: composer run lint
-
- summary:
- permissions:
- contents: none
- runs-on: ubuntu-latest-low
- needs: php-lint
-
- if: always()
-
- name: php-lint-summary
-
- steps:
- - name: Summary status
- run: if ${{ needs.php-lint.result != 'success' && needs.php-lint.result != 'skipped' }}; then exit 1; fi
diff --git a/.github/workflows/lint-stylelint.yml b/.github/workflows/lint-stylelint.yml
deleted file mode 100644
index 1e0421b11..000000000
--- a/.github/workflows/lint-stylelint.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Lint stylelint
-
-on: pull_request
-
-permissions:
- contents: read
-
-concurrency:
- group: lint-stylelint-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- lint:
- runs-on: ubuntu-latest
-
- name: stylelint
-
- steps:
- - name: Checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
- id: versions
- with:
- fallbackNode: '^20'
- fallbackNpm: '^10'
-
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
- with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
-
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
-
- - name: Install dependencies
- env:
- CYPRESS_INSTALL_BINARY: 0
- run: npm ci
-
- - name: Lint
- run: npm run stylelint
diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml
deleted file mode 100644
index cbe42d311..000000000
--- a/.github/workflows/nodejs.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: Node CI
-
-on: [push]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- strategy:
- matrix:
- node-version: [14.x]
-
- steps:
- - uses: actions/checkout@v4.2.2
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4.4.0
- with:
- node-version: ${{ matrix.node-version }}
- - name: Set up npm7
- run: npm i -g npm@7
- - name: install dependencies
- run: |
- npm ci
- - name: build
- env:
- RELATIVE_CI_KEY: ${{ secrets.RELATIVE_CI_KEY }}
- RELATIVE_CI_SLUG: nextcloud/deck
- run: |
- mkdir -p js
- npm run build --if-present -- --profile --json | tail -n +6 > js/webpack-stats.json
- npx relative-ci-agent
-
-
diff --git a/.github/workflows/npm-audit-fix.yml b/.github/workflows/npm-audit-fix.yml
deleted file mode 100644
index 23d73ed9f..000000000
--- a/.github/workflows/npm-audit-fix.yml
+++ /dev/null
@@ -1,81 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Npm audit fix and compile
-
-on:
- workflow_dispatch:
- schedule:
- # At 2:30 on Sundays
- - cron: '30 2 * * 0'
-
-permissions:
- contents: read
-
-jobs:
- build:
- runs-on: ubuntu-latest
-
- strategy:
- fail-fast: false
- matrix:
- branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
-
- name: npm-audit-fix-${{ matrix.branches }}
-
- steps:
- - name: Checkout
- id: checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- ref: ${{ matrix.branches }}
- continue-on-error: true
-
- - name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
- id: versions
- with:
- fallbackNode: '^20'
- fallbackNpm: '^10'
-
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.1.0
- with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
-
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
-
- - name: Fix npm audit
- id: npm-audit
- uses: nextcloud-libraries/npm-audit-action@1b1728b2b4a7a78d69de65608efcf4db0e3e42d0 # v0.2.0
-
- - name: Run npm ci and npm run build
- if: steps.checkout.outcome == 'success'
- env:
- CYPRESS_INSTALL_BINARY: 0
- run: |
- npm ci
- npm run build --if-present
-
- - name: Create Pull Request
- if: steps.checkout.outcome == 'success'
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
- with:
- token: ${{ secrets.COMMAND_BOT_PAT }}
- commit-message: 'fix(deps): Fix npm audit'
- committer: GitHub
- author: nextcloud-command
- signoff: true
- branch: automated/noid/${{ matrix.branches }}-fix-npm-audit
- title: '[${{ matrix.branches }}] Fix npm audit'
- body: ${{ steps.npm-audit.outputs.markdown }}
- labels: |
- dependencies
- 3. to review
diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml
deleted file mode 100644
index 3658b3827..000000000
--- a/.github/workflows/phpunit-mysql.yml
+++ /dev/null
@@ -1,200 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: PHPUnit MySQL
-
-on: pull_request
-
-permissions:
- contents: read
-
-concurrency:
- group: phpunit-mysql-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- matrix:
- runs-on: ubuntu-latest-low
- outputs:
- matrix: ${{ steps.versions.outputs.sparse-matrix }}
- steps:
- - name: Checkout app
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Get version matrix
- id: versions
- uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
- with:
- matrix: '{"mysql-versions": ["8.4"]}'
-
- changes:
- runs-on: ubuntu-latest-low
- permissions:
- contents: read
- pull-requests: read
-
- outputs:
- src: ${{ steps.changes.outputs.src}}
-
- steps:
- - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
- id: changes
- continue-on-error: true
- with:
- filters: |
- src:
- - '.github/workflows/**'
- - 'appinfo/**'
- - 'lib/**'
- - 'templates/**'
- - 'tests/**'
- - 'vendor/**'
- - 'vendor-bin/**'
- - '.php-cs-fixer.dist.php'
- - 'composer.json'
- - 'composer.lock'
-
- phpunit-mysql:
- runs-on: ubuntu-latest
-
- needs: [changes, matrix]
- if: needs.changes.outputs.src != 'false'
-
- strategy:
- matrix: ${{ fromJson(needs.matrix.outputs.matrix) }}
-
- name: MySQL ${{ matrix.mysql-versions }} PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
-
- services:
- mysql:
- image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
- ports:
- - 4444:3306/tcp
- env:
- MYSQL_ROOT_PASSWORD: rootpassword
- options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
-
- steps:
- - name: Set app env
- if: ${{ env.APP_NAME == '' }}
- run: |
- # Split and keep last
- echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
-
- - name: Checkout server
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- submodules: true
- repository: nextcloud/server
- ref: ${{ matrix.server-versions }}
-
- - name: Checkout app
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- path: apps/${{ env.APP_NAME }}
-
- - name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: ${{ matrix.php-versions }}
- # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
- extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
- coverage: none
- ini-file: development
- # Temporary workaround for missing pcntl_* in PHP 8.3
- ini-values: disable_functions=
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Enable ONLY_FULL_GROUP_BY MySQL option
- run: |
- echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- echo 'SELECT @@sql_mode;' | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
-
- - name: Check composer file existence
- id: check_composer
- uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
- with:
- files: apps/${{ env.APP_NAME }}/composer.json
-
- - name: Set up dependencies
- # Only run if phpunit config file exists
- if: steps.check_composer.outputs.files_exists == 'true'
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer remove nextcloud/ocp --dev
- composer i
-
- - name: Set up Nextcloud
- env:
- DB_PORT: 4444
- run: |
- mkdir data
- ./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
- ./occ app:enable --force ${{ env.APP_NAME }}
-
- - name: Check PHPUnit script is defined
- id: check_phpunit
- continue-on-error: true
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer run --list | grep '^ test:unit ' | wc -l | grep 1
-
- - name: PHPUnit
- # Only run if phpunit config file exists
- if: steps.check_phpunit.outcome == 'success'
- working-directory: apps/${{ env.APP_NAME }}
- run: composer run test:unit
-
- - name: Check PHPUnit integration script is defined
- id: check_integration
- continue-on-error: true
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer run --list | grep '^ test:integration ' | wc -l | grep 1
-
- - name: Run Nextcloud
- # Only run if phpunit integration config file exists
- if: steps.check_integration.outcome == 'success'
- run: php -S localhost:8080 &
-
- - name: PHPUnit integration
- # Only run if phpunit integration config file exists
- if: steps.check_integration.outcome == 'success'
- working-directory: apps/${{ env.APP_NAME }}
- run: composer run test:integration
-
- - name: Print logs
- if: always()
- run: |
- cat data/nextcloud.log
-
- - name: Skipped
- # Fail the action when neither unit nor integration tests ran
- if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
- run: |
- echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
- exit 1
-
- summary:
- permissions:
- contents: none
- runs-on: ubuntu-latest-low
- needs: [changes, phpunit-mysql]
-
- if: always()
-
- name: phpunit-mysql-summary
-
- steps:
- - name: Summary status
- run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml
deleted file mode 100644
index 24508acc4..000000000
--- a/.github/workflows/phpunit-pgsql.yml
+++ /dev/null
@@ -1,198 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: PHPUnit PostgreSQL
-
-on: pull_request
-
-permissions:
- contents: read
-
-concurrency:
- group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- matrix:
- runs-on: ubuntu-latest-low
- outputs:
- php-version: ${{ steps.versions.outputs.php-available-list }}
- server-max: ${{ steps.versions.outputs.branches-max-list }}
- steps:
- - name: Checkout app
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Get version matrix
- id: versions
- uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
-
- changes:
- runs-on: ubuntu-latest-low
- permissions:
- contents: read
- pull-requests: read
-
- outputs:
- src: ${{ steps.changes.outputs.src }}
-
- steps:
- - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
- id: changes
- continue-on-error: true
- with:
- filters: |
- src:
- - '.github/workflows/**'
- - 'appinfo/**'
- - 'lib/**'
- - 'templates/**'
- - 'tests/**'
- - 'vendor/**'
- - 'vendor-bin/**'
- - '.php-cs-fixer.dist.php'
- - 'composer.json'
- - 'composer.lock'
-
- phpunit-pgsql:
- runs-on: ubuntu-latest
-
- needs: [changes, matrix]
- if: needs.changes.outputs.src != 'false'
-
- strategy:
- matrix:
- php-versions: ${{ fromJson(needs.matrix.outputs.php-version) }}
- server-versions: ${{ fromJson(needs.matrix.outputs.server-max) }}
-
- name: PostgreSQL PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
-
- services:
- postgres:
- image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
- ports:
- - 4444:5432/tcp
- env:
- POSTGRES_USER: root
- POSTGRES_PASSWORD: rootpassword
- POSTGRES_DB: nextcloud
- options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
-
- steps:
- - name: Set app env
- if: ${{ env.APP_NAME == '' }}
- run: |
- # Split and keep last
- echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
-
- - name: Checkout server
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- submodules: true
- repository: nextcloud/server
- ref: ${{ matrix.server-versions }}
-
- - name: Checkout app
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- path: apps/${{ env.APP_NAME }}
-
- - name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: ${{ matrix.php-versions }}
- # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
- extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
- coverage: none
- ini-file: development
- # Temporary workaround for missing pcntl_* in PHP 8.3
- ini-values: disable_functions=
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Check composer file existence
- id: check_composer
- uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
- with:
- files: apps/${{ env.APP_NAME }}/composer.json
-
- - name: Set up dependencies
- # Only run if phpunit config file exists
- if: steps.check_composer.outputs.files_exists == 'true'
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer remove nextcloud/ocp --dev
- composer i
-
- - name: Set up Nextcloud
- env:
- DB_PORT: 4444
- run: |
- mkdir data
- ./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
- ./occ app:enable --force ${{ env.APP_NAME }}
-
- - name: Check PHPUnit script is defined
- id: check_phpunit
- continue-on-error: true
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer run --list | grep '^ test:unit ' | wc -l | grep 1
-
- - name: PHPUnit
- # Only run if phpunit config file exists
- if: steps.check_phpunit.outcome == 'success'
- working-directory: apps/${{ env.APP_NAME }}
- run: composer run test:unit
-
- - name: Check PHPUnit integration script is defined
- id: check_integration
- continue-on-error: true
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer run --list | grep '^ test:integration ' | wc -l | grep 1
-
- - name: Run Nextcloud
- # Only run if phpunit integration config file exists
- if: steps.check_integration.outcome == 'success'
- run: php -S localhost:8080 &
-
- - name: PHPUnit integration
- # Only run if phpunit integration config file exists
- if: steps.check_integration.outcome == 'success'
- working-directory: apps/${{ env.APP_NAME }}
- run: composer run test:integration
-
- - name: Print logs
- if: always()
- run: |
- cat data/nextcloud.log
-
- - name: Skipped
- # Fail the action when neither unit nor integration tests ran
- if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
- run: |
- echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
- exit 1
-
- summary:
- permissions:
- contents: none
- runs-on: ubuntu-latest-low
- needs: [changes, phpunit-pgsql]
-
- if: always()
-
- name: phpunit-pgsql-summary
-
- steps:
- - name: Summary status
- run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml
deleted file mode 100644
index cb7d21c0b..000000000
--- a/.github/workflows/phpunit-sqlite.yml
+++ /dev/null
@@ -1,187 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: PHPUnit SQLite
-
-on: pull_request
-
-permissions:
- contents: read
-
-concurrency:
- group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- matrix:
- runs-on: ubuntu-latest-low
- outputs:
- php-version: ${{ steps.versions.outputs.php-available-list }}
- server-max: ${{ steps.versions.outputs.branches-max-list }}
- steps:
- - name: Checkout app
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Get version matrix
- id: versions
- uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
-
- changes:
- runs-on: ubuntu-latest-low
- permissions:
- contents: read
- pull-requests: read
-
- outputs:
- src: ${{ steps.changes.outputs.src}}
-
- steps:
- - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
- id: changes
- continue-on-error: true
- with:
- filters: |
- src:
- - '.github/workflows/**'
- - 'appinfo/**'
- - 'lib/**'
- - 'templates/**'
- - 'tests/**'
- - 'vendor/**'
- - 'vendor-bin/**'
- - '.php-cs-fixer.dist.php'
- - 'composer.json'
- - 'composer.lock'
-
- phpunit-sqlite:
- runs-on: ubuntu-latest
-
- needs: [changes, matrix]
- if: needs.changes.outputs.src != 'false'
-
- strategy:
- matrix:
- php-versions: ${{ fromJson(needs.matrix.outputs.php-version) }}
- server-versions: ${{ fromJson(needs.matrix.outputs.server-max) }}
-
- name: SQLite PHP ${{ matrix.php-versions }} Nextcloud ${{ matrix.server-versions }}
-
- steps:
- - name: Set app env
- if: ${{ env.APP_NAME == '' }}
- run: |
- # Split and keep last
- echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
-
- - name: Checkout server
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- submodules: true
- repository: nextcloud/server
- ref: ${{ matrix.server-versions }}
-
- - name: Checkout app
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- path: apps/${{ env.APP_NAME }}
-
- - name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: ${{ matrix.php-versions }}
- # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
- extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
- coverage: none
- ini-file: development
- # Temporary workaround for missing pcntl_* in PHP 8.3
- ini-values: disable_functions=
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Check composer file existence
- id: check_composer
- uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
- with:
- files: apps/${{ env.APP_NAME }}/composer.json
-
- - name: Set up dependencies
- # Only run if phpunit config file exists
- if: steps.check_composer.outputs.files_exists == 'true'
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer remove nextcloud/ocp --dev
- composer i
-
- - name: Set up Nextcloud
- env:
- DB_PORT: 4444
- run: |
- mkdir data
- ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
- ./occ app:enable --force ${{ env.APP_NAME }}
-
- - name: Check PHPUnit script is defined
- id: check_phpunit
- continue-on-error: true
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer run --list | grep '^ test:unit ' | wc -l | grep 1
-
- - name: PHPUnit
- # Only run if phpunit config file exists
- if: steps.check_phpunit.outcome == 'success'
- working-directory: apps/${{ env.APP_NAME }}
- run: composer run test:unit
-
- - name: Check PHPUnit integration script is defined
- id: check_integration
- continue-on-error: true
- working-directory: apps/${{ env.APP_NAME }}
- run: |
- composer run --list | grep '^ test:integration ' | wc -l | grep 1
-
- - name: Run Nextcloud
- # Only run if phpunit integration config file exists
- if: steps.check_integration.outcome == 'success'
- run: php -S localhost:8080 &
-
- - name: PHPUnit integration
- # Only run if phpunit integration config file exists
- if: steps.check_integration.outcome == 'success'
- working-directory: apps/${{ env.APP_NAME }}
- run: composer run test:integration
-
- - name: Print logs
- if: always()
- run: |
- cat data/nextcloud.log
-
- - name: Skipped
- # Fail the action when neither unit nor integration tests ran
- if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
- run: |
- echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
- exit 1
-
- summary:
- permissions:
- contents: none
- runs-on: ubuntu-latest-low
- needs: [changes, phpunit-sqlite]
-
- if: always()
-
- name: phpunit-sqlite-summary
-
- steps:
- - name: Summary status
- run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/pr-feedback.yml b/.github/workflows/pr-feedback.yml
deleted file mode 100644
index 98e9fada7..000000000
--- a/.github/workflows/pr-feedback.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-
-# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-FileCopyrightText: 2023 Marcel Klehr
-# SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com>
-# SPDX-FileCopyrightText: 2023 Daniel Kesselberg
-# SPDX-FileCopyrightText: 2023 Florian Steffens
-# SPDX-License-Identifier: MIT
-
-name: 'Ask for feedback on PRs'
-on:
- schedule:
- - cron: '30 1 * * *'
-
-permissions:
- contents: read
- pull-requests: write
-
-jobs:
- pr-feedback:
- if: ${{ github.repository_owner == 'nextcloud' }}
- runs-on: ubuntu-latest
- steps:
- - name: The get-github-handles-from-website action
- uses: marcelklehr/get-github-handles-from-website-action@06b2239db0a48fe1484ba0bfd966a3ab81a08308 # v1.0.1
- id: scrape
- with:
- website: 'https://nextcloud.com/team/'
-
- - name: Get blocklist
- id: blocklist
- run: |
- blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
- echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
-
- - uses: nextcloud/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4 # main
- with:
- feedback-message: |
- Hello there,
- Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
-
- We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
-
- Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
-
- Thank you for contributing to Nextcloud and we hope to hear from you soon!
-
- (If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
- days-before-feedback: 14
- start-date: '2024-04-30'
- exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
- exempt-bots: true
diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml
deleted file mode 100644
index 45a5a90b7..000000000
--- a/.github/workflows/psalm.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Static analysis
-
-on: pull_request
-
-concurrency:
- group: psalm-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-permissions:
- contents: read
-
-jobs:
- static-analysis:
- runs-on: ubuntu-latest
-
- name: static-psalm-analysis
- steps:
- - name: Checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: Get php version
- id: versions
- uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
-
- - name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
- run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
-
- - name: Set up php${{ steps.versions.outputs.php-min }}
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: ${{ steps.versions.outputs.php-min }}
- extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
- coverage: none
- ini-file: development
- # Temporary workaround for missing pcntl_* in PHP 8.3
- ini-values: disable_functions=
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Install dependencies
- run: |
- composer remove nextcloud/ocp --dev
- composer i
-
- - name: Install nextcloud/ocp
- run: composer require --dev nextcloud/ocp:dev-${{ steps.versions.outputs.branches-max }} --ignore-platform-reqs --with-dependencies
-
- - name: Run coding standards check
- run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github
diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml
deleted file mode 100644
index 95a8626a4..000000000
--- a/.github/workflows/reuse.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-
-# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V.
-#
-# SPDX-License-Identifier: CC0-1.0
-
-name: REUSE Compliance Check
-
-on: [pull_request]
-
-permissions:
- contents: read
-
-jobs:
- reuse-compliance-check:
- runs-on: ubuntu-latest-low
- steps:
- - name: Checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
-
- - name: REUSE Compliance Check
- uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
diff --git a/.github/workflows/update-nextcloud-ocp-approve-merge.yml b/.github/workflows/update-nextcloud-ocp-approve-merge.yml
deleted file mode 100644
index dfe0ef4e9..000000000
--- a/.github/workflows/update-nextcloud-ocp-approve-merge.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Auto approve nextcloud/ocp
-
-on:
- pull_request_target: # zizmor: ignore[dangerous-triggers]
- branches:
- - main
- - master
- - stable*
-
-permissions:
- contents: read
-
-concurrency:
- group: update-nextcloud-ocp-approve-merge-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- auto-approve-merge:
- if: github.actor == 'nextcloud-command'
- runs-on: ubuntu-latest-low
- permissions:
- # for hmarr/auto-approve-action to approve PRs
- pull-requests: write
- # for alexwilson/enable-github-automerge-action to approve PRs
- contents: write
-
- steps:
- - name: Disabled on forks
- if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
- run: |
- echo 'Can not approve PRs from forks'
- exit 1
-
- - uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
- id: branchname
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
-
- # GitHub actions bot approve
- - uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
- if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
-
- # Enable GitHub auto merge
- - name: Auto merge
- uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
- if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/update-nextcloud-ocp.yml b/.github/workflows/update-nextcloud-ocp.yml
deleted file mode 100644
index e9c010f45..000000000
--- a/.github/workflows/update-nextcloud-ocp.yml
+++ /dev/null
@@ -1,123 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Update nextcloud/ocp
-
-on:
- workflow_dispatch:
- schedule:
- - cron: "5 2 * * 0"
-
-permissions:
- contents: read
-
-jobs:
- update-nextcloud-ocp:
- runs-on: ubuntu-latest
-
- strategy:
- fail-fast: false
- matrix:
- branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
-
- name: update-nextcloud-ocp-${{ matrix.branches }}
-
- steps:
- - id: checkout
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- with:
- persist-credentials: false
- ref: ${{ matrix.branches }}
- submodules: true
- continue-on-error: true
-
- - name: Set up php8.2
- if: steps.checkout.outcome == 'success'
- uses: shivammathur/setup-php@0f7f1d08e3e32076e51cae65eb0b0c871405b16e # v2.34.1
- with:
- php-version: 8.2
- # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
- extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
- coverage: none
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Read codeowners
- if: steps.checkout.outcome == 'success'
- id: codeowners
- run: |
- grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT
- continue-on-error: true
-
- - name: Composer install
- if: steps.checkout.outcome == 'success'
- run: composer install
-
- - name: Composer update nextcloud/ocp
- id: update_branch
- if: ${{ steps.checkout.outcome == 'success' && matrix.branches != 'main' }}
- run: composer require --dev 'nextcloud/ocp:dev-${{ matrix.branches }}'
-
- - name: Raise on issue on failure
- uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
- if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }}
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- title: 'Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}'
- body: 'Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}'
-
- - name: Composer update nextcloud/ocp
- id: update_main
- if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }}
- run: composer require --dev nextcloud/ocp:dev-master
-
- - name: Raise on issue on failure
- uses: dacbd/create-issue-action@cdb57ab6ff8862aa09fee2be6ba77a59581921c2 # v2.0.0
- if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }}
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- title: 'Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}'
- body: 'Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}'
-
- - name: Reset checkout 3rdparty
- if: steps.checkout.outcome == 'success'
- run: |
- git clean -f 3rdparty
- git checkout 3rdparty
- continue-on-error: true
-
- - name: Reset checkout vendor
- if: steps.checkout.outcome == 'success'
- run: |
- git clean -f vendor
- git checkout vendor
- continue-on-error: true
-
- - name: Reset checkout vendor-bin
- if: steps.checkout.outcome == 'success'
- run: |
- git clean -f vendor-bin
- git checkout vendor-bin
- continue-on-error: true
-
- - name: Create Pull Request
- if: steps.checkout.outcome == 'success'
- uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
- with:
- token: ${{ secrets.COMMAND_BOT_PAT }}
- commit-message: 'chore(dev-deps): Bump nextcloud/ocp package'
- committer: GitHub
- author: nextcloud-command
- signoff: true
- branch: 'automated/noid/${{ matrix.branches }}-update-nextcloud-ocp'
- title: '[${{ matrix.branches }}] Update nextcloud/ocp dependency'
- body: |
- Auto-generated update of [nextcloud/ocp](https://github.com/nextcloud-deps/ocp/) dependency
- labels: |
- dependencies
- 3. to review