-
Notifications
You must be signed in to change notification settings - Fork 0
201 lines (148 loc) · 5.85 KB
/
vagrant.yml
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
name: Vagrant box
on:
release:
types: [created]
jobs:
deploy:
runs-on: macos-13
env:
VAGRANT_CLOUD_USERNAME: pedrofurtado
VAGRANT_CLOUD_BOX_NAME: vagrant-ubuntu-workspace
VAGRANT_CLOUD_BOX_VERSION: ${{ github.event.release.tag_name }}
VAGRANT_CLOUD_ACCESS_TOKEN: ${{ secrets.VAGRANT_CLOUD_ACCESS_TOKEN }}
steps:
- name: Install VirtualBox
run: |
wget https://raw.githubusercontent.com/Homebrew/homebrew-cask/f70d37ccb8d9aed963e3edffc78067cb22b9892b/Casks/v/virtualbox.rb
brew install --cask virtualbox.rb
rm -f virtualbox.rb
- name: Install Vagrant
run: brew install vagrant
- name: Version - Vagrant
run: vagrant --version
- name: Version - Jq
run: jq --version
- name: Version - Curl
run: curl --version
- name: Version - Box
run: echo $VAGRANT_CLOUD_BOX_VERSION
- name: VM - Plugins
run: |
vagrant plugin install vagrant-vbguest
vagrant plugin install vagrant-disksize
- uses: actions/checkout@v2
- name: VM - Build script
run: vagrant up --provider=virtualbox
- name: VM - OS version
run: vagrant ssh -c "cat /etc/os-release"
- name: VM - Dos2Unix
run: vagrant ssh -c "dos2unix --version"
- name: VM - Jq
run: vagrant ssh -c "jq --version"
- name: VM - 7z
run: vagrant ssh -c "7z"
- name: VM - Unzip
run: vagrant ssh -c "unzip -v"
- name: VM - Zip
run: vagrant ssh -c "zip -v"
- name: VM - Wget
run: vagrant ssh -c "wget --version"
- name: VM - Curl
run: vagrant ssh -c "curl --version"
- name: VM - Timezone
run: vagrant ssh -c "date"
- name: VM - Docker
run: vagrant ssh -c "docker --version"
- name: VM - Kind K8s
run: vagrant ssh -c "kind --version"
- name: VM - K3D K8s
run: vagrant ssh -c "k3d --version"
- name: VM - Kubectl K8s
run: vagrant ssh -c "kubectl --help"
- name: VM - Helm K8s
run: vagrant ssh -c "helm version"
- name: VM - EKSCTL K8s
run: vagrant ssh -c "eksctl version"
- name: VM - Portainer
run: vagrant ssh -c "sudo docker container inspect portainer | grep Status"
- name: VM - Pip3
run: vagrant ssh -c "pip3 --version"
- name: VM - Docker compose v1
run: vagrant ssh -c "docker-compose --version"
- name: VM - Docker compose v1 pip dependencies (needs docker py in v6.1.3)
run: vagrant ssh -c "pip3 list | egrep docker"
- name: VM - Ngrok
run: vagrant ssh -c "ngrok -v"
- name: VM - AWS SAM CLI
run: vagrant ssh -c "sam --version"
- name: VM - AWS CLI
run: vagrant ssh -c "aws --version"
- name: VM - NodeJS
run: vagrant ssh -c "node -v"
- name: VM - NPM
run: vagrant ssh -c "npm -v"
- name: VM - Nodemon
run: vagrant ssh -c "nodemon -v"
- name: VM - PHP
run: vagrant ssh -c "php -v"
- name: VM - PHP Composer
run: vagrant ssh -c "composer --version"
- name: VM - Putty
run: vagrant ssh -c "puttygen --version"
- name: VM - Google Cloud CLI - gcloud
run: vagrant ssh -c "gcloud --version"
- name: VM - Google Cloud CLI - bq
run: vagrant ssh -c "bq version"
- name: VM - Google Cloud CLI - gsutil
run: vagrant ssh -c "gsutil --version"
- name: VM - Default user
run: vagrant ssh -c "whoami"
- name: VM - Default folder
run: vagrant ssh -c "pwd"
- name: VM - Shutdown
run: vagrant halt
- name: VM - Package box
run: vagrant package
- name: Vagrant Cloud - Create release ${{ env.VAGRANT_CLOUD_BOX_VERSION }}
run: |
curl \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $VAGRANT_CLOUD_ACCESS_TOKEN" \
https://app.vagrantup.com/api/v1/box/$VAGRANT_CLOUD_USERNAME/$VAGRANT_CLOUD_BOX_NAME/versions \
--data '
{
"version": {
"version": "'"$VAGRANT_CLOUD_BOX_VERSION"'",
"description": "Box automatically released based on this repository: https://github.com/pedrofurtado/vagrant-ubuntu-workspace"
}
}
'
- name: Vagrant Cloud - Create VirtualBox provider for release ${{ env.VAGRANT_CLOUD_BOX_VERSION }}
run: |
curl \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $VAGRANT_CLOUD_ACCESS_TOKEN" \
https://app.vagrantup.com/api/v1/box/$VAGRANT_CLOUD_USERNAME/$VAGRANT_CLOUD_BOX_NAME/version/$VAGRANT_CLOUD_BOX_VERSION/providers \
--data '
{
"provider": {
"name": "virtualbox"
}
}
'
- name: Vagrant Cloud - Upload box for release ${{ env.VAGRANT_CLOUD_BOX_VERSION }}
run: |
response=$(curl \
--header "Authorization: Bearer $VAGRANT_CLOUD_ACCESS_TOKEN" \
https://app.vagrantup.com/api/v1/box/$VAGRANT_CLOUD_USERNAME/$VAGRANT_CLOUD_BOX_NAME/version/$VAGRANT_CLOUD_BOX_VERSION/provider/virtualbox/upload)
upload_path=$(echo $response | jq -r .upload_path)
curl \
$(echo $response | jq -r .upload_path) \
--request PUT \
--upload-file package.box
- name: Vagrant Cloud - Publish release ${{ env.VAGRANT_CLOUD_BOX_VERSION }}
run: |
curl \
--header "Authorization: Bearer $VAGRANT_CLOUD_ACCESS_TOKEN" \
https://app.vagrantup.com/api/v1/box/$VAGRANT_CLOUD_USERNAME/$VAGRANT_CLOUD_BOX_NAME/version/$VAGRANT_CLOUD_BOX_VERSION/release \
--request PUT