-
Notifications
You must be signed in to change notification settings - Fork 19
138 lines (113 loc) · 4.32 KB
/
behat-sqlite-encryption.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Behat
on: pull_request
permissions:
contents: read
concurrency:
group: behat-sqlite-encryption-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
# Location of the behat.yml file
BEHAT_CONFIG: ./tests/Integration/config/behat.yml
jobs:
changes:
runs-on: ubuntu-latest-low
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'
behat-sqlite-encryption:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.2']
server-versions: ['stable27', 'master']
steps:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- name: Checkout server
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
submodules: true
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
- name: Checkout circles app
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
repository: nextcloud/circles
path: apps/circles
ref: ${{ matrix.server-versions }}
- name: Checkout app
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # 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, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install composer dependencies
working-directory: apps/${{ env.APP_NAME }}
run: |
composer i
# remove as those dev dependencies pull in an outdated psr/log
composer remove --dev nextcloud/ocp
- 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 config:system:set --value="http://localhost:8080" -- overwrite.cli.url
./occ app:enable --force ${{ env.APP_NAME }}
for user in alice bob jane john; do \
OC_PASS="$user" ./occ user:add --password-from-env "$user"; \
done
./occ group:add "Bobs Group"
for user in bob jane; do \
OC_PASS="$user" ./occ group:adduser "Bobs Group" "$user"; \
done
- name: Enable server-side encryption
run: |
./occ app:enable encryption
./occ encryption:enable
- name: Run Nextcloud
run: php -S localhost:8080 &
- name: Behat integration
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/bin/behat --config=${{ env.BEHAT_CONFIG }} --profile ci
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, behat-sqlite-encryption]
if: always()
name: behat-sqlite-encryption-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.behat-sqlite-encryption.result != 'success' }}; then exit 1; fi