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:
commit
86d315648a
53
.github/workflows/test-acceptance.yml
vendored
Normal file
53
.github/workflows/test-acceptance.yml
vendored
Normal 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/
|
4
.github/workflows/test-unit.yml
vendored
4
.github/workflows/test-unit.yml
vendored
@ -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/
|
||||
|
||||
|
27
e107_tests/lib/ci/Dockerfile
Normal file
27
e107_tests/lib/ci/Dockerfile
Normal 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"]
|
@ -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/'
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user