Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions .github/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
ARG PHP_VERSION
FROM php:${PHP_VERSION}-apache
LABEL maintainer="Adyen <magento@adyen.com>"

ENV MAGENTO_HOST="<will be defined>" \
DB_SERVER="<will be defined>" \
DB_PORT=3306 \
DB_NAME=magento \
DB_USER=magento \
DB_PASSWORD=magento \
DB_PREFIX=m2_ \
ELASTICSEARCH_SERVER="<will be defined>" \
ELASTICSEARCH_PORT=9200 \
ELASTICSEARCH_INDEX_PREFIX=magento2 \
ELASTICSEARCH_TIMEOUT=15 \
ADMIN_NAME=admin \
ADMIN_LASTNAME=admin \
ADMIN_EMAIL=admin@example.com \
ADMIN_USERNAME=admin \
ADMIN_PASSWORD=admin123 \
ADMIN_URLEXT=admin \
MAGENTO_LANGUAGE=en_US \
MAGENTO_CURRENCY=EUR \
MAGENTO_TZ=Europe/Amsterdam \
DEPLOY_SAMPLEDATA=0 \
USE_SSL=1 \
SSH_PRIVATE_KEY=${SSH_PRIVATE_KEY}

RUN apt-get update \
&& apt-get install -y libjpeg62-turbo-dev \
libpng-dev \
libfreetype6-dev \
libxml2-dev \
libzip-dev \
libssl-dev \
libxslt-dev \
default-mysql-client \
ssl-cert \
wget \
cron \
unzip \
ssh \
git

RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install -j$(nproc) bcmath gd intl pdo_mysql simplexml soap sockets xsl zip
RUN a2enmod ssl
RUN a2ensite default-ssl.conf #can be removed if not needed
WORKDIR /var/www/html
COPY config/php.ini /usr/local/etc/php/
COPY scripts/install_magento.sh /tmp/install_magento.sh
COPY scripts/install_hyva.sh /tmp/install_hyva.sh

RUN if [ -x "$(command -v apache2-foreground)" ]; then a2enmod rewrite; fi

ARG MAGENTO_VERSION
ADD "https://github.com/magento/magento2/archive/refs/tags/${MAGENTO_VERSION}.tar.gz" /tmp/magento.tar.gz
ADD "https://github.com/magento/magento2-sample-data/archive/refs/tags/${MAGENTO_VERSION}.tar.gz" /tmp/sample-data.tar.gz

RUN chmod +x /tmp/install_magento.sh
RUN chmod +x /tmp/install_hyva.sh

# Create the directory here because www-data won't have permissions to make it themselves.
RUN mkdir -p /var/www/.ssh
RUN chown -R www-data:www-data /var/www/.ssh

CMD ["bash", "/tmp/install_magento.sh"]
83 changes: 83 additions & 0 deletions .github/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Install N98-Magerun
n98-magerun2.phar:
wget -q https://files.magerun.net/n98-magerun2.phar
chmod +x ./n98-magerun2.phar

# Check Magento installation
sys-check: n98-magerun2.phar
./n98-magerun2.phar sys:check

# Install Magento (without starting Apache)
magento:
sed '/exec /d' /tmp/install_magento.sh | bash

hyva: install-hyva configure flush

# Hyva install
install-hyva:
sed '/exec /d' /tmp/install_hyva.sh | bash

# Install developer module
dev-module:
bin/magento module:enable Adyen_Developer
bin/magento setup:upgrade

# Configuration
configure: n98-magerun2.phar
echo "configuration step started"
bin/magento config:set payment/adyen_abstract/demo_mode 1
bin/magento adyen:enablepaymentmethods:run
bin/magento config:set payment/adyen_abstract/has_holder_name 1
bin/magento config:set payment/adyen_pay_by_link/active 1
bin/magento config:set payment/adyen_pay_by_link/days_to_expire 5
bin/magento config:set payment/adyen_giving/active 1
bin/magento config:set payment/adyen_giving/charity_description 'test'
bin/magento config:set payment/adyen_giving/charity_website 'https://adyen.com'
bin/magento config:set payment/adyen_giving/charity_merchant_account "${DONATION_ACCOUNT}"
bin/magento config:set payment/adyen_giving/donation_amounts '1,5,10'
bin/magento config:set payment/adyen_giving/background_image ''
bin/magento config:set payment/adyen_abstract/merchant_account "${ADYEN_MERCHANT}"
bin/magento config:set payment/adyen_abstract/notifications_ip_check 0
bin/magento config:set payment/adyen_abstract/payment_authorized 'processing'
bin/magento config:set payment/adyen_abstract/payment_pre_authorized 'pending_payment'
bin/magento config:set payment/adyen_abstract/capture_mode 'manual'
bin/magento config:set payment/adyen_abstract/paypal_capture_mode 0
bin/magento config:set payment/adyen_abstract/recurring_configuration '{"adyen_cc":{"name":"Credit Card","enabled":"1","recurringProcessingModel":"CardOnFile"}}'
bin/magento config:set payment/adyen_cc_vault/require_cvc 1
bin/magento config:set payment/adyen_abstract/client_key_test "${ADYEN_CLIENT_KEY}"
bin/magento config:set payment/adyen_abstract/notification_username 'admin'
bin/magento config:set payment/adyen_abstract/payment_methods_active 1
bin/magento config:set payment/adyen_abstract/has_holder_name 1
./n98-magerun2.phar config:store:set --encrypt payment/adyen_abstract/notification_password '1234' > /dev/null
./n98-magerun2.phar config:store:set --encrypt payment/adyen_abstract/api_key_test "${ADYEN_API_KEY}" > /dev/null
echo "configuration step ended"

# Clear cache
flush:
bin/magento cache:flush

# Setup permissions
fs:
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chmod 777 -R var
chown -R www-data:www-data .
chmod u+x bin/magento
echo "memory_limit = -1" > /usr/local/etc/php/conf.d/memory.ini

# Production mode
production:
bin/magento deploy:mode:set production

refresh:
rm -rf generated/metadata
rm -rf generated/code
rm -rf pub/static/adminhtml/*
rm -rf pub/static/frontend/*

bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush

MAGENTO_ROOT=/var/www/html
8 changes: 8 additions & 0 deletions .github/config/php.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
memory_limit = 2G
; Error reporting in production mode
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = On
post_max_size = 20M
upload_max_filesize = 20M
date.timezone = Europe/Amsterdam
29 changes: 29 additions & 0 deletions .github/docker-compose.e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
version: '3'
services:
playwright:
image: mcr.microsoft.com/playwright:v1.40.1
shm_size: 1gb
ipc: host
cap_add:
- SYS_ADMIN
networks:
- backend
environment:
- INTEGRATION_TESTS_BRANCH
- MAGENTO_BASE_URL
- MAGENTO_ADMIN_USERNAME
- MAGENTO_ADMIN_PASSWORD
- PAYPAL_USERNAME
- PAYPAL_PASSWORD
- ADYEN_API_KEY
- ADYEN_CLIENT_KEY
- ADYEN_MERCHANT
- GOOGLE_USERNAME
- GOOGLE_PASSWORD
- WEBHOOK_USERNAME
- WEBHOOK_PASSWORD
volumes:
- ./scripts:/scripts
- ../test-report:/tmp/test-report
networks:
backend:
67 changes: 67 additions & 0 deletions .github/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
version: '3'

services:
web:
build:
context: .
args:
- PHP_VERSION=${PHP_VERSION}
- MAGENTO_VERSION=${MAGENTO_VERSION}
container_name: magento2-hyva-container
networks:
backend:
aliases:
- magento2.test.com
extra_hosts:
- "magento2.test.com:127.0.0.1"
environment:
DB_SERVER: mariadb
ELASTICSEARCH_SERVER: elasticsearch
MAGENTO_HOST: magento2.test.com
VIRTUAL_HOST: magento2.test.com
COMPOSER_MEMORY_LIMIT: -1
DONATION_ACCOUNT:
ADMIN_USERNAME: "admin"
ADMIN_PASSWORD: "Adyen123@"
ADYEN_MERCHANT:
ADYEN_API_KEY:
ADYEN_CLIENT_KEY:
PHP_VERSION:
MAGENTO_VERSION:
DEPLOY_SAMPLEDATA: 1
SSH_PRIVATE_KEY: ${SSH_PRIVATE_KEY}
BRANCH_NAME: ${BRANCH_NAME}
depends_on:
- db
- elastic
volumes:
- ../:/data/extensions/workdir
- ./Makefile:/var/www/html/Makefile
- composer:/usr/local/bin
- magento:/var/www/html
db:
image: mariadb:10.4
container_name: mariadb
networks:
- backend
environment:
MARIADB_ROOT_PASSWORD: root_password
MARIADB_DATABASE: magento
MARIADB_USER: magento
MARIADB_PASSWORD: magento
elastic:
image: elasticsearch:7.17.13
container_name: elasticsearch
networks:
- backend
ports:
- 9200:9200
- 9300:9300
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms750m -Xmx750m"
networks:
backend:
volumes:
magento:
composer:
14 changes: 14 additions & 0 deletions .github/scripts/e2e.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash

# Base configuration and installation
set -euo pipefail
cd /tmp
git clone https://github.com/Adyen/adyen-integration-tools-tests.git
cd adyen-integration-tools-tests
git checkout "$INTEGRATION_TESTS_BRANCH"
rm -rf package-lock.json
npm i
npx playwright install

echo "Running HYVA E2E Tests."
npm run test:ci:hyva
28 changes: 28 additions & 0 deletions .github/scripts/install_hyva.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Set up SSH config for gitlab.hyva.io
echo "${SSH_PRIVATE_KEY}" >> ~/.ssh/hyva_id_rsa
chmod 600 ~/.ssh/hyva_id_rsa
ssh-keyscan gitlab.hyva.io >> ~/.ssh/known_hosts
echo "Host gitlab.hyva.io" >> ~/.ssh/config
echo " StrictHostKeyChecking no" >> ~/.ssh/config
echo " IdentityFile /var/www/.ssh/hyva_id_rsa" >> ~/.ssh/config
chmod 600 ~/.ssh/config

# Configure composer
echo "Configuring Composer with additional repositories"
composer config repositories.hyva-themes/hyva-checkout git git@gitlab.hyva.io:hyva-checkout/checkout.git
composer config repositories.hyva-themes/magento2-theme-module git git@gitlab.hyva.io:hyva-themes/magento2-theme-module.git
composer config repositories.hyva-themes/magento2-reset-theme git git@gitlab.hyva.io:hyva-themes/magento2-reset-theme.git
composer config repositories.hyva-themes/magento2-email-theme git git@gitlab.hyva.io:hyva-themes/magento2-email-module.git
composer config repositories.hyva-default-theme git git@gitlab.hyva.io:hyva-themes/magento2-default-theme.git

# Install Hyva compatibility module
echo "Installing Hyva compatibility module"
# TODO: update the branch from develop to current branch
echo "dev-${BRANCH_NAME}"
composer require adyen/module-hyva-checkout:dev-${BRANCH_NAME}
bin/magento module:enable --all

bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
Loading