Skip to content

Commit df697c8

Browse files
committed
Merge branch 'main' into chore/MAGE-1342-3.16.0-release
2 parents 2f1e155 + e833857 commit df697c8

File tree

1 file changed

+79
-99
lines changed

1 file changed

+79
-99
lines changed

.circleci/config.yml

Lines changed: 79 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,92 @@
1-
version: 2
1+
version: 2.1
22

3-
shared: &shared
4-
working_directory: ~/build_directory/algoliasearch-magento-2
5-
steps:
6-
- checkout
3+
orbs:
4+
php: circleci/[email protected]
75

8-
- run:
9-
name: Override the Algolia extension with the cloned one
10-
command: |
11-
cp -R ~/build_directory/algoliasearch-magento-2 ~/magento_directory/vendor/algolia
12-
cd ~/magento_directory
13-
sudo composer require algolia/algoliasearch-magento-2
14-
composer dump-autoload
15-
16-
- run:
17-
name: Start database server
18-
command: |
19-
sudo service mysql start
20-
sleep 2
21-
ps aux | grep mysql
22-
23-
- run:
24-
name: Install the extension
25-
command: |
26-
cd ~/magento_directory
27-
sudo service elasticsearch start # for some reasons has to be launched with the step
28-
sleep 10
29-
php -dmemory_limit=-1 bin/magento module:disable Magento_WebapiAsync Magento_Amqp Magento_MysqlMq Magento_MessageQueue
30-
php -dmemory_limit=-1 bin/magento module:enable Algolia_AlgoliaSearch
31-
sudo chmod -R 777 var/ pub/ generated/
32-
php -dmemory_limit=-1 bin/magento setup:upgrade
33-
php -dmemory_limit=-1 bin/magento setup:d:c
34-
php -dmemory_limit=-1 bin/magento setup:s:d -f
35-
36-
- run:
37-
name: Get the right tests config for DB and administration
38-
command: |
39-
rm -rf ~/magento_directory/vendor/dotmailer/dotmailer-magento2-extension/Test ~/magento_directory/vendor/dotmailer/dotmailer-magento2-extension-chat/Test
40-
mv ~/build_directory/algoliasearch-magento-2/dev/tests/install-config-mysql.php ~/magento_directory/dev/tests/integration/etc/install-config-mysql.php
41-
42-
- run:
43-
name: Before setup
44-
command: |
45-
echo 'memory_limit = 256M' | sudo tee /usr/local/etc/php/php.ini
46-
47-
- run:
48-
name: Get keys from dealer
49-
command: |
50-
if [ "$CIRCLE_PR_REPONAME" ]; then
51-
curl -s https://algoliasearch-client-keygen.herokuapp.com | sh >> $BASH_ENV
52-
fi
53-
54-
- run:
55-
name: Run tests
56-
command: |
57-
cd ~/magento_directory/dev/tests/integration
58-
sudo service elasticsearch start # for some reasons has to be launched with the step
59-
sleep 10
6+
executors:
7+
magento-executor:
8+
machine:
9+
image: ubuntu-2404:2024.11.1
10+
docker_layer_caching: true
6011

6112
jobs:
62-
"magento-2.3":
63-
<<: *shared
64-
docker:
65-
- image: algolia/magento2-circleci:2.4.4-php7.4-v1
66-
67-
"magento-2.4":
68-
<<: *shared
69-
docker:
70-
- image: algolia/magento2-circleci:2.4.4-php7.4-v1
71-
72-
"quality-tools":
73-
docker:
74-
- image: algolia/magento2-circleci:2.4.4-php7.4-v1
75-
working_directory: ~/build_directory/algoliasearch-magento-2
13+
magento-build:
14+
executor:
15+
name: magento-executor
16+
parameters:
17+
php-version:
18+
type: string
19+
magento-version:
20+
type: string
7621
steps:
7722
- checkout
23+
- php/install_php:
24+
version: << parameters.php-version >>
25+
- php/install_composer
7826
- run:
79-
name: Setting permissions
27+
name: Configure composer authentication
8028
command: |
81-
sudo chown circleci:circleci ~/.composer/
82-
- restore_cache:
83-
keys:
84-
- composer-v4-{{ checksum "composer.json" }}
85-
- composer-v4-
86-
29+
composer config --global http-basic.repo.magento.com ${MAGENTO_AUTH_USERNAME} ${MAGENTO_AUTH_PASSWORD}
30+
composer config --global repositories.algolia vcs https://github.com/algolia/algoliasearch-magento-2
8731
- run:
88-
name: Prepare environment
32+
name: Setup folder structure and override file
8933
command: |
90-
sudo chown circleci:circleci ~/.composer/
91-
composer global config prefer-stable true
92-
composer global config minimum-stability dev
93-
composer global require algolia/magento2-tools
94-
95-
# We have to do this again because we restore the cache above, overwriting the vendor with the original.
96-
mkdir ~/magento_directory/vendor/algolia
97-
# rm -rf algoliasearch-magento-2
98-
cp -R ~/build_directory/algoliasearch-magento-2 ~/magento_directory/vendor/algolia
99-
cd ~/magento_directory
100-
composer dump-autoload
101-
- save_cache:
102-
key: composer-v4-{{ checksum "composer.json" }}
103-
paths:
104-
- vendor
34+
mkdir ~/Sites
35+
mkdir ~/Sites/unit-tests
36+
mkdir ~/Sites/unit-coverage
37+
cd ~/Sites
38+
cat \<<EOF > compose.override.yml
39+
services:
40+
phpfpm:
41+
image: markoshust/magento-php:<< parameters.php-version >>-fpm
42+
EOF
43+
- run:
44+
name: Setup magento enterprise
45+
working_directory: ~/Sites
46+
command: |
47+
curl -s https://raw.githubusercontent.com/markshust/docker-magento/master/lib/template | bash
48+
docker compose -f compose.yaml -f compose.override.yml up -d --remove-orphans
49+
bin/cli rm -rf composer.lock vendor composer.json
50+
bin/fixowns
51+
bin/setup-composer-auth
52+
bin/cli git clone [email protected]:magento/magento2.git .
53+
bin/cli git checkout tags/<< parameters.magento-version >>
54+
bin/composer require "algolia/algoliasearch-magento-2:dev-${CIRCLE_BRANCH}"
55+
bin/composer global require --dev phpunit/phpunit
56+
- run:
57+
name: Enable AlgoliaSearch extension
58+
working_directory: ~/Sites
59+
command: |
60+
bin/magento module:enable Algolia_AlgoliaSearch
61+
- run:
62+
name: Compile AlgoliaSearch extension
63+
working_directory: ~/Sites
64+
command: |
65+
bin/magento setup:di:compile
66+
bin/magento module:status Algolia_AlgoliaSearch
67+
- run:
68+
name: Run Unit Tests and copy results to CircleCI
69+
working_directory: ~/Sites
70+
command: |
71+
bin/cli vendor/bin/phpunit --log-junit /var/www/html/dev/tests/unit/report/junit.xml /var/www/html/vendor/algolia/algoliasearch-magento-2/Test/Unit
72+
docker cp $(docker compose ps -q phpfpm):/var/www/html/dev/tests/unit/report/junit.xml ./unit-tests/
73+
- store_test_results:
74+
path: ~/Sites/unit-tests
75+
- run:
76+
name: Run Unit Test Coverage and copy results to CircleCI
77+
working_directory: ~/Sites
78+
command: |
79+
bin/cli php -d xdebug.mode=coverage vendor/bin/phpunit --log-junit /var/www/html/dev/tests/unit/report/junit.xml --coverage-html /var/www/html/dev/tests/unit/report --coverage-filter /var/www/html/vendor/algolia/algoliasearch-magento-2/ /var/www/html/vendor/algolia/algoliasearch-magento-2/Test/Unit
80+
docker cp $(docker compose ps -q phpfpm):/var/www/html/dev/tests/unit/report ./unit-coverage/
81+
- store_artifacts:
82+
path: ~/Sites/unit-coverage/report
83+
destination: test-results/magento-<< parameters.magento-version >>-php-<< parameters.php-version >>
10584

10685
workflows:
107-
version: 2
108-
build:
86+
magento-build-and-test-workflow:
10987
jobs:
110-
- "magento-2.4"
111-
- "magento-2.3"
112-
- "quality-tools"
88+
- magento-build:
89+
matrix:
90+
parameters:
91+
php-version: ["8.2"]
92+
magento-version: ["2.4.6-p11", "2.4.7-p6"]

0 commit comments

Comments
 (0)