-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (101 loc) · 4.04 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
name: Vagrant box
on:
release:
types: [created]
jobs:
deploy:
runs-on: macos-12
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: 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
- name: VM - OS version
run: vagrant ssh -c "cat /etc/os-release"
- name: VM - Dos2Unix
run: vagrant ssh -c "dos2unix --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 - Kubectl K8s
run: vagrant ssh -c "kubectl --help"
- 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
run: vagrant ssh -c "docker-compose --version"
- name: VM - Ngrok
run: vagrant ssh -c "ngrok -v"
- name: VM - AWS SAM CLI
run: vagrant ssh -c "sam --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