|
|
@@ -0,0 +1,75 @@ |
|
|
|
name: SFTP unit tests |
|
|
|
on: |
|
|
|
push: |
|
|
|
branches: |
|
|
|
- master |
|
|
|
- stable* |
|
|
|
paths: |
|
|
|
- 'apps/files_external/**' |
|
|
|
pull_request: |
|
|
|
paths: |
|
|
|
- 'apps/files_external/**' |
|
|
|
|
|
|
|
env: |
|
|
|
APP_NAME: files_external |
|
|
|
|
|
|
|
jobs: |
|
|
|
sftp-tests: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
|
|
|
if: ${{ github.repository_owner != 'nextcloud-gmbh' }} |
|
|
|
|
|
|
|
strategy: |
|
|
|
# do not stop on another job's failure |
|
|
|
fail-fast: false |
|
|
|
matrix: |
|
|
|
php-versions: ['8.0'] |
|
|
|
sftpd: ['openssh'] |
|
|
|
|
|
|
|
name: php${{ matrix.php-versions }}-${{ matrix.sftpd }} |
|
|
|
|
|
|
|
steps: |
|
|
|
- name: Checkout server |
|
|
|
uses: actions/checkout@v3 |
|
|
|
with: |
|
|
|
submodules: true |
|
|
|
|
|
|
|
- name: Set up sftpd |
|
|
|
run: | |
|
|
|
sudo mkdir /tmp/sftp |
|
|
|
sudo chown -R 0777 /tmp/sftp |
|
|
|
if [[ "${{ matrix.sftpd }}" == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp "test:test:::data"; fi |
|
|
|
- name: Set up php ${{ matrix.php-versions }} |
|
|
|
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2 |
|
|
|
with: |
|
|
|
php-version: ${{ matrix.php-versions }} |
|
|
|
tools: phpunit:9 |
|
|
|
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd |
|
|
|
env: |
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
|
|
|
|
|
|
|
- name: Set up Nextcloud |
|
|
|
run: | |
|
|
|
mkdir data |
|
|
|
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password |
|
|
|
./occ app:enable --force ${{ env.APP_NAME }} |
|
|
|
php -S localhost:8080 & |
|
|
|
- name: PHPUnit |
|
|
|
run: | |
|
|
|
echo "<?php return ['run' => true, 'host' => 'localhost:2222','user' => 'test','password' => 'test', 'root' => 'data'];" > apps/${{ env.APP_NAME }}/tests/config.sftp.php |
|
|
|
phpunit --configuration tests/phpunit-autotest-external.xml apps/files_external/tests/Storage/SftpTest.php |
|
|
|
- name: sftpd logs |
|
|
|
if: always() |
|
|
|
run: | |
|
|
|
ls -l /tmp/sftp |
|
|
|
docker logs sftp |
|
|
|
|
|
|
|
sftp-summary: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
needs: sftp-tests |
|
|
|
|
|
|
|
if: always() |
|
|
|
|
|
|
|
steps: |
|
|
|
- name: Summary status |
|
|
|
run: if ${{ needs.sftp-tests.result != 'success' }}; then exit 1; fi |