1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-20 04:32:01 +02:00

Merge pull request #4308 from Deltik/test-acceptance

Automated Acceptance Tests
This commit is contained in:
Cameron 2020-12-28 15:30:16 -08:00 committed by GitHub
commit 86d315648a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 92 additions and 5 deletions

53
.github/workflows/test-acceptance.yml vendored Normal file
View File

@ -0,0 +1,53 @@
name: Acceptance Tests
on:
push:
pull_request:
jobs:
test-acceptance:
runs-on: ubuntu-latest
container:
image: php:latest
services:
target:
image: ghcr.io/e107inc/e107/e107-dev:latest
ports:
- 22
- 80
- 3306
options: >-
--tmpfs /tmp
--tmpfs /run
--tmpfs /run/lock
--volume /sys/fs/cgroup:/sys/fs/cgroup:ro
steps:
- name: Install system dependencies
run: |
apt-get update
apt-get install -y git zip libzip-dev sshpass rsync
- name: Install necessary PHP extensions
run: docker-php-ext-install -j "$(nproc)" zip pdo_mysql mysqli
- uses: actions/checkout@v2
- name: Install Composer
run: curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer
- name: Install test dependencies
run: composer update --prefer-dist --no-progress
working-directory: ./e107_tests/
- name: Download Git submodule dependencies
run: git submodule update --init --recursive --remote
- name: Install the CI test configuration file
run: |
cp ./e107_tests/lib/ci/config.ci.yml ./e107_tests/config.yml
sed -i "s/host: 'db'/host: 'target'/" ./e107_tests/config.yml
- name: Run acceptance tests
run: php ./vendor/bin/codecept run acceptance --steps --debug
working-directory: ./e107_tests/

View File

@ -11,7 +11,7 @@ env:
CC_TEST_REPORTER_ID: 8948074581c1ffe7f4e47995c65d7d303882310256edd73536723d7c92adb1e3
jobs:
test:
test-unit:
strategy:
fail-fast: false
matrix:
@ -105,7 +105,7 @@ jobs:
- name: Install Composer
run: curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer
- name: Install dependencies
- name: Install test dependencies
run: composer update --prefer-dist --no-progress
working-directory: ./e107_tests/

View File

@ -0,0 +1,27 @@
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y wget gnupg
RUN wget -O - https://repo.saltstack.com/py3/ubuntu/20.04/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add -
RUN mkdir -pv /etc/apt/sources.list.d/
RUN echo 'deb http://repo.saltstack.com/py3/ubuntu/20.04/amd64/latest focal main' |\
tee /etc/apt/sources.list.d/saltstack.list
RUN apt-get update
RUN apt-get install -y systemd-sysv salt-minion openssh-server rsync
RUN systemctl disable salt-minion.service
RUN mkdir -pv /etc/salt/
COPY salt /var/tmp/salt
COPY config.ci.yml /var/tmp/salt/pillars/config-local.sls
RUN rm -fv /var/tmp/salt/pillars/config.sls && touch /var/tmp/salt/pillars/config.sls
RUN rm -fv /var/tmp/salt/pillars/config-sample.sls && touch /var/tmp/salt/pillars/config-sample.sls
RUN cp -fv /var/tmp/salt/master /etc/salt/minion
WORKDIR /var/tmp/salt
RUN salt-call -l debug --id=e107-dev --local state.apply e107-dev
WORKDIR /
VOLUME ["/sys/fs/cgroup"]
ENTRYPOINT ["/usr/sbin/init"]

View File

@ -1,9 +1,15 @@
---
deployer: 'local'
url: 'http://set-this-to-your-acceptance-test-url.local/'
deployer: 'sftp'
url: 'http://target/e107/'
db:
host: 'db'
dbname: 'app'
user: 'root'
password: 'Database Password for Continuous Integration'
populate: true
fs:
host: 'target'
user: 'www-data'
port: '22'
password: 'UNIX Password for Continuous Integration'
path: '/var/www/html/e107/'

View File

@ -34,7 +34,8 @@ class SFTPDeployer extends Deployer
private function generateRsyncRemoteShell()
{
$prefix = 'ssh -p '.escapeshellarg($this->getFsParam('port'));
$prefix = 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p '.
escapeshellarg($this->getFsParam('port'));
if (!empty($this->getFsParam('privkey_path')))
return $prefix.' -i ' . escapeshellarg($this->getFsParam('privkey_path'));
else