This repository has been archived by the owner on Jul 26, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbuild.xml
134 lines (123 loc) · 5.09 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?xml version="1.0"?>
<project name="Magento2" basedir=".">
<!-- makes environment variables available -->
<property environment="env"/>
<property file="build.properties"/>
<property file="build.default.properties"/>
<!-- builds the container image -->
<target name="build">
<antcall target="destroy-container"/>
<antcall target="init-container"/>
<antcall target="install-m2"/>
</target>
<!-- destroys an existing container -->
<target name="destroy-container">
<exec executable="docker">
<arg line="stop magento2_instance"/>
</exec>
<exec executable="docker">
<arg line="rm magento2_instance"/>
</exec>
</target>
<!-- initalizes a new container -->
<target name="init-container">
<exec executable="docker">
<arg line="build -t magenerds_magento2 ."/>
</exec>
<exec executable="docker">
<arg line="run -d --name magento2_instance -p 80:80 -p 443:443 -p 3306:3306 magenerds_magento2"/>
</exec>
</target>
<!-- installs Magento 2 -->
<target name="install-m2">
<delete dir="${basedir}/www/"/>
<antcall target="init-magento"/>
<antcall target="init-sample-data"/>
<exec executable="sh" dir="${basedir}/www/magento">
<arg value="-c" />
<arg value="find . | grep .git | xargs rm -rf"/>
</exec>
<exec executable="docker">
<arg line="exec -i magento2_instance mkdir -p /var/www/magento"/>
</exec>
<antcall target="copy-www-to-docker"/>
<exec executable="docker">
<arg line="exec magento2_instance composer --working-dir=/var/www/magento/ install"/>
</exec>
<exec executable="docker">
<arg line="exec magento2_instance mysql -e 'CREATE DATABASE ${magento.db.name} CHARACTER SET utf8 COLLATE utf8_general_ci;'"/>
</exec>
<exec executable="docker">
<arg line="exec -i magento2_instance php -d memory_limit=512M /var/www/magento/bin/magento setup:install
--backend-frontname='${magento.backend.frontname}'
--db-host='${magento.db.host}'
--db-name='${magento.db.name}'
--base-url='${magento.base.url}'
--language='${magento.language}'
--timezone='${magento.timezone}'
--currency='${magento.currency}'
--use-secure=1
--base-url-secure='${magento.secure.base.url}'
--use-secure-admin=1
--admin-user='${magento.admin.user}'
--admin-password='${magento.admin.pass}'
--admin-email='${magento.admin.email}'
--admin-firstname='${magento.admin.firstname}'
--admin-lastname='${magento.admin.lastname}'
--cleanup-database
--sales-order-increment-prefix='DEV'
--use-sample-data
"/>
</exec>
<exec executable="docker">
<arg line="exec magento2_instance /var/www/magento/bin/magento deploy:mode:set developer"/>
</exec>
<antcall target="copy-www-to-local"/>
</target>
<!-- checks out and prepares the magento sources -->
<target name="init-magento">
<exec executable="git">
<arg line="submodule update --init"/>
</exec>
<exec executable="git" dir="${basedir}/sources/magento2">
<arg line="pull"/>
</exec>
<exec executable="git" dir="${basedir}/sources/magento2">
<arg line="checkout ${magento.version}"/>
</exec>
<copy todir="${basedir}/www/magento" overwrite="true">
<fileset dir="${basedir}/sources/magento2">
<include name="**"/>
</fileset>
</copy>
</target>
<!-- initializes Magento 2 sample data -->
<target name="init-sample-data" if="${use.sample.data}">
<exec executable="git" dir="${basedir}/sources/sample-data">
<arg line="pull"/>
</exec>
<exec executable="git" dir="${basedir}/sources/magento2">
<arg line="checkout ${magento.version}"/>
</exec>
<copy todir="${basedir}/www/magento" overwrite="true">
<fileset dir="${basedir}/sources/sample-data">
<include name="**"/>
</fileset>
</copy>
</target>
<!-- copies the whole www directory to docker container -->
<target name="copy-www-to-docker">
<exec executable="docker">
<arg line="cp ${basedir}/www/magento/ magento2_instance:/var/www/"/>
</exec>
<exec executable="docker">
<arg line="exec magento2_instance chmod +x /var/www/magento/bin/magento"/>
</exec>
</target>
<!-- copies the whole www directory to local machine -->
<target name="copy-www-to-local">
<exec executable="docker">
<arg line="cp magento2_instance:/var/www/magento/ ${basedir}/www/"/>
</exec>
</target>
</project>