-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #749 from nextcloud/refactor/db
Refactor/db
- Loading branch information
Showing
42 changed files
with
3,074 additions
and
216 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
name: app upgrade mysql | ||
|
||
on: | ||
pull_request: | ||
branches: main | ||
|
||
permissions: | ||
contents: read | ||
|
||
concurrency: | ||
group: app-upgrade-mysql-${{ github.head_ref || github.run_id }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
changes: | ||
runs-on: ubuntu-latest | ||
|
||
outputs: | ||
src: ${{ steps.changes.outputs.src}} | ||
|
||
steps: | ||
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 | ||
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' | ||
app-upgrade-mysql: | ||
runs-on: ubuntu-latest | ||
|
||
needs: changes | ||
if: needs.changes.outputs.src != 'false' | ||
|
||
strategy: | ||
matrix: | ||
php-versions: ['8.2'] | ||
server-versions: ['master'] | ||
|
||
services: | ||
mysql: | ||
image: ghcr.io/nextcloud/continuous-integration-mysql-8.0:latest | ||
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: Set app env | ||
run: | | ||
# Split and keep last | ||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV | ||
- name: Checkout server | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
with: | ||
submodules: true | ||
repository: nextcloud/server | ||
ref: ${{ matrix.server-versions }} | ||
|
||
- 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 text app | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
with: | ||
repository: nextcloud/text | ||
path: apps/text | ||
ref: ${{ env.text_app_ref }} | ||
|
||
- name: Checkout viewer app | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
with: | ||
repository: nextcloud/viewer | ||
path: apps/viewer | ||
ref: ${{ matrix.server-versions }} | ||
|
||
- name: Set up php ${{ matrix.php-versions }} | ||
uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2 | ||
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, sqlite, pdo_sqlite | ||
coverage: none | ||
ini-file: development | ||
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: Set up Nextcloud, enable tables from app store | ||
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: Checkout app | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
with: | ||
path: apps/${{ env.APP_NAME }} | ||
|
||
- name: Set up dependencies | ||
working-directory: apps/${{ env.APP_NAME }} | ||
run: composer i --no-dev | ||
|
||
- name: Upgrade Nextcloud and see whether the app still works | ||
run: | | ||
./occ upgrade | ||
./occ app:list | ||
- name: Upload nextcloud logs | ||
uses: actions/upload-artifact@v4 | ||
if: always() | ||
with: | ||
name: nextcloud.log | ||
path: data/nextcloud.log | ||
retention-days: 5 | ||
|
||
|
||
summary: | ||
permissions: | ||
contents: none | ||
runs-on: ubuntu-latest | ||
needs: [changes, app-upgrade-mysql] | ||
|
||
if: always() | ||
|
||
name: app-upgrade-mysql-summary | ||
|
||
steps: | ||
- name: Summary status | ||
run: if ${{ needs.changes.outputs.src != 'false' && needs.app-upgrade-mysql.result != 'success' }}; then exit 1; fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.