Skip to content

Commit a0fb9b2

Browse files
Add more tools, add list of commands
1 parent a47397c commit a0fb9b2

File tree

4 files changed

+213
-50
lines changed

4 files changed

+213
-50
lines changed

.bash_aliases

100644100755
+20
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
source
2+
13
# Basic aliases
24
alias update="sudo apt-get update"
35
alias upgrade="sudo apt-get upgrade"
@@ -22,8 +24,12 @@ alias dvd="ddev drush"
2224
alias dvc="ddev composer"
2325

2426
# Composer packages commands
27+
alias cgr="~/.config/composer/vendor/bin/cgr"
2528
alias takeout="~/.config/composer/vendor/bin/takeout"
2629
alias mage="~/.config/composer/vendor/bin/mage"
30+
alias dgc="~/.config/composer/vendor/bin/dcg"
31+
alias drupal-check="~/.config/composer/vendor/bin/drupal-check"
32+
alias phpstan"~/.config/composer/vendor/bin/phpstan"
2733

2834
# Aliases Git
2935
alias st="gs"
@@ -138,3 +144,17 @@ function docker-pull-all(){
138144
echo -n "Pulling all images... That may need time.\n"
139145
docker images | awk '(NR>1) && ($2!~/none/) {print $1":"$2}' | xargs -L1 docker pull
140146
}
147+
148+
################
149+
150+
# Commands to help with CI/CD
151+
alias ci-build="docker build . -t tplcom/gitpod-drupal-workspace"
152+
alias ci-ssh="docker run -ti tplcom/gitpod-drupal-workspace bash"
153+
alias ci-push="docker push tplcom/gitpod-drupal-workspace:latest"
154+
155+
function commands(){
156+
for line in $(cat ~/commands.md)
157+
do
158+
echo -e $line
159+
done
160+
}

Dockerfile

+103-43
Original file line numberDiff line numberDiff line change
@@ -1,127 +1,185 @@
11
FROM gitpod/workspace-full
22

33
# Setup environment (software versions)
4+
ENV BEHAT="v3.9.0"
5+
ENV CAPTAINHOOK="5.10.4"
46
ENV COMPOSER="2.1.9"
5-
ENV ROBO="3.0.4"
7+
ENV COMPOSER_NORMALIZE="2.15.0"
68
ENV DRUPALORG_CLI="0.3.2"
7-
ENV DRUPAL_CODE_GENERATOR="2.1.1"
9+
ENV DRUPAL_CODE_GENERATOR="2.2.0"
810
ENV GRUMPHP="v1.5.0"
9-
ENV COMPOSER_NORMALIZE="2.15.0"
11+
ENV PHAN="5.2.1"
12+
ENV PHPMETRICS="v2.7.3"
13+
ENV ROBO="3.0.4"
1014

1115
SHELL ["/bin/bash", "-c"]
1216

1317
RUN sudo apt-get -qq update && sudo apt-get install -y \
18+
ansible \
1419
rsync \
1520
git-svn \
1621
screen \
1722
tmux \
1823
sass
1924

2025
# Install ruby gems
21-
RUN sudo gem install \
26+
RUN gem install --user-install --quiet \
2227
teamocil \
2328
capistrano
2429

30+
# Add gem bin to path
31+
RUN export GEM_HOME="$(ruby -e 'puts Gem.user_dir')" >> ~/.bashrc && \
32+
export PATH="$PATH:$GEM_HOME/bin" >> ~/.bashrc && \
33+
export GEM_HOME="$(ruby -e 'puts Gem.user_dir')" >> ~/.zshrc && \
34+
export PATH="$PATH:$GEM_HOME/bin" >> ~/.zshrc
35+
2536
# Install composer 2.x (replace existing)
26-
RUN sudo wget -q https://getcomposer.org/download/${COMPOSER}/composer.phar && \
37+
RUN sudo wget --quiet -q https://getcomposer.org/download/${COMPOSER}/composer.phar && \
2738
sudo chmod +x composer.phar && \
2839
sudo mv composer.phar /usr/bin/composer && \
2940
echo "export PATH=\"\$HOME/.config/composer/vendor/bin:\$PATH\"" >> ~/.bashrc && \
3041
echo "export PATH=\"\$HOME/.config/composer/vendor/bin:\$PATH\"" >> ~/.zshrc
3142

3243
# Install global composer packages
33-
RUN composer global require \
44+
RUN composer global require --quiet \
3445
szeidler/composer-patches-cli \
3546
tightenco/takeout \
3647
andres-montanez/magallanes \
37-
consolidation/cgr
48+
consolidation/cgr \
49+
mglaman/drupal-check
3850

39-
# Install robo
40-
RUN sudo wget https://github.com/consolidation/Robo/releases/download/${ROBO}/robo.phar && \
41-
sudo chmod +x robo.phar && \
42-
sudo mv robo.phar /usr/bin/robo
51+
# Install behat
52+
RUN sudo wget --quiet https://github.com/Behat/Behat/releases/download/${BEHAT}/behat.phar && \
53+
sudo chmod +x behat.phar && \
54+
sudo mv behat.phar /usr/local/bin/behat
55+
56+
# Install captainhook
57+
RUN sudo wget --quiet https://github.com/captainhookphp/captainhook/releases/download/${CAPTAINHOOK}/captainhook.phar && \
58+
sudo chmod +x captainhook.phar && \
59+
sudo mv captainhook.phar /usr/local/bin/captainhook
60+
61+
# Install codeception
62+
RUN sudo wget --quiet http://codeception.com/codecept.phar && \
63+
sudo chmod +x codecept.phar && \
64+
sudo mv codecept.phar /usr/local/bin/codecept
4365

4466
# Install drush-lanucher
45-
RUN sudo wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/latest/download/drush.phar && \
67+
RUN sudo wget --quiet -O drush.phar https://github.com/drush-ops/drush-launcher/releases/latest/download/drush.phar && \
4668
sudo chmod +x drush.phar && \
4769
sudo mv drush.phar /usr/local/bin/drush
4870

4971
# Install drupalorg-cli
50-
RUN sudo wget https://github.com/mglaman/drupalorg-cli/releases/download/${DRUPALORG_CLI}/drupalorg.phar && \
72+
RUN sudo wget --quiet https://github.com/mglaman/drupalorg-cli/releases/download/${DRUPALORG_CLI}/drupalorg.phar && \
5173
sudo chmod +x drupalorg.phar && \
5274
sudo mv drupalorg.phar /usr/local/bin/drupalorg
5375

5476
# Install drupal-code-generator
55-
RUN sudo wget https://github.com/Chi-teck/drupal-code-generator/releases/download/${DRUPAL_CODE_GENERATOR}/dcg.phar && \
77+
RUN sudo wget --quiet https://github.com/Chi-teck/drupal-code-generator/releases/download/${DRUPAL_CODE_GENERATOR}/dcg.phar && \
5678
sudo chmod +x dcg.phar && \
5779
sudo mv dcg.phar /usr/local/bin/dcg
5880

5981
# Install deployer
60-
RUN sudo curl -LO https://deployer.org/deployer.phar && \
82+
RUN sudo wget --quiet https://deployer.org/deployer.phar && \
6183
sudo chmod +x deployer.phar && \
6284
sudo mv deployer.phar /usr/local/bin/dep
6385

64-
# Install phpcs
65-
RUN sudo wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar && \
66-
sudo chmod +x phpcs.phar && \
67-
sudo mv phpcs.phar /usr/local/bin/phpcs
68-
69-
# Install phpcbf
70-
RUN sudo wget https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar && \
71-
sudo chmod +x phpcbf.phar && \
72-
sudo mv phpcbf.phar /usr/local/bin/phpcbf
86+
# Install grumphp
87+
RUN sudo wget --quiet https://github.com/phpro/grumphp/releases/download/${GRUMPHP}/grumphp.phar && \
88+
sudo chmod +x grumphp.phar && \
89+
sudo mv grumphp.phar /usr/local/bin/grumphp
7390

74-
# Install phive
75-
RUN sudo wget https://phar.io/releases/phive.phar && \
76-
sudo chmod +x phive.phar && \
77-
sudo mv phive.phar /usr/local/bin/phive
91+
# Install phan
92+
RUN sudo wget --quiet https://github.com/phan/phan/releases/download/${PHAN}/phan.phar && \
93+
sudo chmod +x phan.phar && \
94+
sudo mv phan.phar /usr/local/bin/phan
7895

7996
# Install phing
80-
RUN sudo wget https://www.phing.info/get/phing-latest.phar && \
97+
RUN sudo wget --quiet https://www.phing.info/get/phing-latest.phar && \
8198
sudo chmod +x phing-latest.phar && \
8299
sudo mv phing-latest.phar /usr/local/bin/phing
83100

101+
# Install phive
102+
RUN sudo wget --quiet https://phar.io/releases/phive.phar && \
103+
sudo chmod +x phive.phar && \
104+
sudo mv phive.phar /usr/local/bin/phive
105+
84106
# Install phpmd
85-
RUN sudo wget https://phpmd.org/static/latest/phpmd.phar && \
107+
RUN sudo wget --quiet https://phpmd.org/static/latest/phpmd.phar && \
86108
sudo chmod +x phpmd.phar && \
87109
sudo mv phpmd.phar /usr/local/bin/phpmd
88110

89-
# Install grumphp
90-
RUN sudo wget https://github.com/phpro/grumphp/releases/download/${GRUMPHP}/grumphp.phar && \
91-
sudo chmod +x grumphp.phar && \
92-
sudo mv grumphp.phar /usr/local/bin/grumphp
111+
# Install phpcpd
112+
RUN sudo wget --quiet https://phar.phpunit.de/phpcpd.phar && \
113+
sudo chmod +x phpcpd.phar && \
114+
sudo mv phpcpd.phar /usr/local/bin/phpcpd
115+
116+
# Install phpcs
117+
RUN sudo wget --quiet https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar && \
118+
sudo chmod +x phpcs.phar && \
119+
sudo mv phpcs.phar /usr/local/bin/phpcs
120+
121+
# Install phpcbf
122+
RUN sudo wget --quiet https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar && \
123+
sudo chmod +x phpcbf.phar && \
124+
sudo mv phpcbf.phar /usr/local/bin/phpcbf
125+
126+
# Install phpmetrics
127+
RUN sudo wget --quiet https://github.com/phpmetrics/PhpMetrics/releases/download/${PHPMETRICS}/phpmetrics.phar && \
128+
sudo chmod +x phpmetrics.phar && \
129+
sudo mv phpmetrics.phar /usr/local/bin/phpmetrics
130+
131+
# Install robo
132+
RUN sudo wget --quiet https://github.com/consolidation/Robo/releases/download/${ROBO}/robo.phar && \
133+
sudo chmod +x robo.phar && \
134+
sudo mv robo.phar /usr/bin/robo
135+
136+
# Install security-checker
137+
RUN sudo wget --quiet https://www.laravel-enlightn.com/security-checker.phar && \
138+
sudo chmod +x security-checker.phar && \
139+
sudo mv security-checker.phar /usr/local/bin/security-checker
93140

94141
# Install composer-normalize
95-
RUN sudo wget https://github.com/ergebnis/composer-normalize/releases/download/${COMPOSER_NORMALIZE}/composer-normalize.phar && \
142+
RUN sudo wget --quiet https://github.com/ergebnis/composer-normalize/releases/download/${COMPOSER_NORMALIZE}/composer-normalize.phar && \
96143
sudo chmod +x composer-normalize.phar && \
97144
sudo mv composer-normalize.phar /usr/local/bin/composer-normalize
98145

99146
# Install phpbrew
100-
RUN sudo curl -LO https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar && \
147+
RUN sudo wget --quiet https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar && \
101148
sudo chmod +x phpbrew.phar && \
102149
sudo mv phpbrew.phar /usr/local/bin/phpbrew && \
103150
echo -e "[[ -e ~/.phpbrew/bashrc ]]" >> ~/.bashrc && \
104151
echo -e "[[ -e ~/.phpbrew/zshrc ]]" >> .zshrc
105152

153+
# Install wp-cli
154+
RUN sudo wget --quiet https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
155+
sudo chmod +x wp-cli.phar && \
156+
sudo mv wp-cli.phar /usr/local/bin/wp
157+
106158
# Install npm packages
107-
RUN npm install -g \
159+
RUN npm install -g --quiet \
108160
husky \
109161
artillery \
110162
grunt-cli \
111163
gulp-cli \
112164
yo
113165

114166
# Install python packages
115-
RUN sudo ~/.pyenv/shims/python -m pip install \
116-
ansible \
117-
bzt
167+
RUN sudo ~/.pyenv/shims/python -m pip install --quiet \
168+
bzt \
169+
droopescan
118170

119171
# Install scm_breeze
120172
RUN git clone git://github.com/scmbreeze/scm_breeze.git ~/.scm_breeze && \
121173
~/.scm_breeze/install.sh && \
122174
source ~/.bashrc && \
123175
source ~/.zshrc
124176

177+
# Install rupa/z
178+
RUN curl -o ~/z.sh https://raw.githubusercontent.com/rupa/z/master/z.sh && \
179+
chmod +x ~/z.sh && \
180+
echo -e ". ~/z.sh" >> ~/.bashrc && \
181+
echo -e ". ~/z.sh" >> .zshrc
182+
125183
# Install brew packages
126184
RUN brew update && brew install \
127185
drud/ddev/ddev \
@@ -130,11 +188,13 @@ RUN brew update && brew install \
130188
RUN mkcert -install
131189

132190
# Install lando
133-
RUN sudo wget https://files.lando.dev/installer/lando-x64-stable.deb && \
191+
RUN sudo wget --quiet https://files.lando.dev/installer/lando-x64-stable.deb && \
134192
sudo dpkg -i --ignore-depends docker-ce,iptables lando-x64-stable.deb && \
135193
sudo rm -rf lando-x64-stable.deb && \
136194
mkdir -p ~/.lando && \
137195
echo -e "proxy: 'ON'\nproxyHttpPort: '8080'\nproxyHttpsPort: '4443'\nbindAddress: '0.0.0.0'\nproxyBindAddress: '0.0.0.0'" > ~/.lando/config.yml
138196

139-
# Add aliases
140-
ADD .bash_aliases /home/gitpod
197+
# Copy files we need
198+
ADD .bash_aliases commands.md /home/gitpod/
199+
RUN sudo chmod 777 /home/gitpod/.bash_aliases && \
200+
sudo chown gitpod /home/gitpod/.bash_aliases

README.md

+27-7
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,17 @@ Focused on **Drupal** 8+ development.
1212

1313
## Usage
1414

15-
Simply, on your `.gitpod.yml` file use this image:
15+
Simply, on your `.gitpod.yml` file start from this image:
1616

1717
```Dockerfile
1818
image: tplcom/gitpod-drupal-workspace
1919
```
2020

2121
## Software installed
2222

23+
> Check the [commands.md](commands.md) file to get a summary of the installed tools.
24+
> Inside docker image run `commands` to get the equivalent list.
25+
2326
Docker environments:
2427

2528
- [ddev](https://ddev.readthedocs.io/en)
@@ -28,27 +31,35 @@ Docker environments:
2831
PHP tools:
2932

3033
- [deployer](https://deployer.org)
34+
- [captainhook](https://github.com/captainhookphp/captainhook)
35+
- [codeception](https://github.com/codeception/codeception)
3136
- [GrumPHP](https://github.com/phpro/grumphp)
3237
- [Magallanes](https://github.com/andres-montanez/Magallanes)
38+
- [phan](https://github.com/phan/phan)
3339
- [phive](https://github.com/phar-io/phive)
3440
- [phing](https://www.phing.info)
3541
- [phpbrew](https://github.com/phpbrew/phpbrew)
3642
- [phpcbf, phpcs (PHP_CodeSniffer)](https://github.com/squizlabs/PHP_CodeSniffer)
43+
- [phpcpd](https://github.com/sebastianbergmann/phpcpd)
3744
- [phpmd](https://phpmd.org)
45+
- [phpmetrics](https://github.com/phpmetrics/PhpMetrics)
3846
- [robo](https://robo.li)
47+
- [security-checker](https://github.com/enlightn/security-checker)
48+
- [wp-cli](https://wp-cli.org/)
3949

4050
Drupal related tools:
4151

42-
- [drush-code-generator (dcg)](https://github.com/Chi-teck/drupal-code-generator)
52+
- [drupal-code-generator (dcg)](https://github.com/Chi-teck/drupal-code-generator)
4353
- [drush-launcher](https://github.com/drush-ops/drush-launcher)
4454
- [drupalorg-cli](https://github.com/mglaman/drupalorg-cli)
4555

4656
Composer packages:
4757

4858
- [composer 2.x](https://getcomposer.org)
59+
- [consolidation/cgr](https://github.com/consolidation/cgr)
4960
- [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize)
61+
- [mglaman/drupal-check](https://github.com/mglaman/drupal-check)
5062
- [szeidler/composer-patches-cli](https://github.com/szeidler/composer-patches-cli)
51-
- [consolidation/cgr](https://github.com/consolidation/cgr)
5263
- [tightenco/takeout (docker scaffolding)](https://github.com/tighten/takeout)
5364

5465
Nodejs packages:
@@ -57,28 +68,37 @@ Nodejs packages:
5768
- [flood-io/element (load testing)](https://github.com/flood-io/element)
5869
- [grunt-cli](https://gruntjs.com)
5970
- [gulp-cli](https://gulpjs.com)
60-
- [typicode/husky](https://github.com/typicode/husky)
71+
- [husky](https://github.com/typicode/husky)
6172
- [yeoman](https://yeoman.io)
6273

74+
Python packages:
75+
76+
- [bzt (Taurus testing)](https://gettaurus.org)
77+
- [SamJoan/droopescan](https://github.com/SamJoan/droopescan)
78+
6379
Other tools:
6480

6581
- [ansible](https://docs.ansible.com)
6682
- [brew (inherited from base image)](https://brew.sh/)
67-
- [bzt (Taurus testing)](https://gettaurus.org)
6883
- [capistrano](https://capistranorb.com)
6984
- [git-crypt](https://github.com/AGWA/git-crypt)
7085
- [git-svn](https://git-scm.com/docs/git-svn)
7186
- [k6 (load testing)](https://github.com/grafana/k6)
7287
- [remi/teamocil](https://github.com/remi/teamocil)
7388
- [rsync](https://rsync.samba.org)
89+
- [rupa/z](https://github.com/rupa/z)
7490
- [sass](https://sass-lang.com)
7591
- [scmbreeze/scm_breeze](https://github.com/scmbreeze/scm_breeze)
7692
- [screen](http://www.gnu.org/software/screen)
7793
- [tmux/tmux](https://github.com/tmux/tmux)
7894

79-
## ToDo
95+
## Similar tools
96+
97+
Inspired by:
8098

81-
- Print software versions (including software from "gitpod/workspace-full")
99+
- https://github.com/shaal/DrupalPod
100+
- https://github.com/hussainweb/drupalqa
101+
- https://github.com/jakzal/phpqa/
82102

83103
## Licence
84104

0 commit comments

Comments
 (0)