1.24.11 #67
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |