cmake(ci): Add FreeBSD Vagrant for other languages
This commit is contained in:
21
.github/workflows/vagrant.yml
vendored
21
.github/workflows/vagrant.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Vagrant
|
||||
name: Vagrant CMake
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
@@ -6,6 +6,23 @@ jobs:
|
||||
# Only macos runner provide virtualisation with vagrant/virtualbox installed.
|
||||
FreeBSD:
|
||||
runs-on: macos-latest
|
||||
continue-on-error: ${{ matrix.allow_failure }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
distro: [freebsd]
|
||||
lang: [cpp, python]
|
||||
allow_failure: [false]
|
||||
include:
|
||||
- distro: freebsd
|
||||
lang: java
|
||||
allow_failure: true
|
||||
- distro: freebsd
|
||||
lang: dotnet
|
||||
allow_failure: true
|
||||
env:
|
||||
DISTRO: ${{ matrix.distro }}
|
||||
LANG: ${{ matrix.lang }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: vagrant version
|
||||
@@ -13,4 +30,4 @@ jobs:
|
||||
- name: VirtualBox version
|
||||
run: virtualbox -h
|
||||
- name: Build
|
||||
run: make --directory=cmake freebsd
|
||||
run: make --directory=cmake ${DISTRO}_${LANG}
|
||||
|
||||
@@ -34,7 +34,7 @@ help:
|
||||
@echo -e "\t${BOLD}save_<distro>_<lang>_<stage>${RESET}: Save the <stage> docker image for a specific distro for a specific language."
|
||||
@echo -e "\t${BOLD}sh_<distro>_<lang>_<stage>${RESET}: run a container using the <stage> docker image specified (debug purpose)."
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<distro>${RESET}:"
|
||||
@echo -e "\tWith ${BOLD}<distro>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}alpine${RESET} (edge)"
|
||||
@echo -e "\t\t${BOLD}archlinux${RESET} (latest)"
|
||||
@echo -e "\t\t${BOLD}centos${RESET} (latest)"
|
||||
@@ -44,19 +44,19 @@ help:
|
||||
@echo -e "\t\t${BOLD}ubuntu${RESET} (rolling)"
|
||||
@echo -e "\te.g. 'make test_ubuntu'"
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<prestage>${RESET}:"
|
||||
@echo -e "\tWith ${BOLD}<prestage>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}base${RESET} (need by cpp)"
|
||||
@echo -e "\t\t${BOLD}swig${RESET} (need by .Net, Java and Python)"
|
||||
@echo -e "\te.g. 'make base'"
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<lang>${RESET}:"
|
||||
@echo -e "\tWith ${BOLD}<lang>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}cpp${RESET} (C++)"
|
||||
@echo -e "\t\t${BOLD}python${RESET} (Python >= 3)"
|
||||
@echo -e "\t\t${BOLD}java${RESET} (Java >= 8)"
|
||||
@echo -e "\t\t${BOLD}dotnet${RESET} (.Net Core >= 2.1)"
|
||||
@echo -e "\te.g. 'make devel_cpp'"
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<stage>${RESET}:"
|
||||
@echo -e "\tWith ${BOLD}<stage>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}env${RESET}"
|
||||
@echo -e "\t\t${BOLD}devel${RESET}"
|
||||
@echo -e "\t\t${BOLD}build${RESET}"
|
||||
@@ -68,9 +68,11 @@ help:
|
||||
@echo -e "\te.g. 'make build'"
|
||||
@echo
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<VM>${RESET}: build the vagrant <VM> virtual machine."
|
||||
@echo -e "\t${BOLD}<vm>${RESET}: build <vm> vagrant machine for ALL LANGUAGES."
|
||||
@echo -e "\t${BOLD}<vm>_<lang>${RESET}: build a <vm> vagrant machine for the specified language."
|
||||
@echo -e "\t${BOLD}sh_<vm>_<lang>${RESET}: ssh to the vagrant machine specified (debug purpose)."
|
||||
@echo
|
||||
@echo -e "\t${BOLD}<VM>${RESET}:"
|
||||
@echo -e "\tWith ${BOLD}<vm>${RESET}:"
|
||||
@echo -e "\t\t${BOLD}freebsd${RESET} (FreeBSD)"
|
||||
@echo
|
||||
@echo
|
||||
@@ -303,9 +305,27 @@ $(foreach stage,$(STAGES),$(eval $(call make-stage-target,$(stage))))
|
||||
#############
|
||||
VMS = freebsd
|
||||
|
||||
$(VMS): %: vagrant/%/Vagrantfile
|
||||
@cd vagrant/$* && vagrant destroy -f
|
||||
cd vagrant/$* && vagrant up
|
||||
targets_freebsd = $(addprefix freebsd_, $(LANGUAGES))
|
||||
.PHONY: freebsd $(targets_freebsd)
|
||||
freebsd: $(targets_freebsd)
|
||||
$(targets_freebsd): freebsd_%: vagrant/freebsd/%/Vagrantfile
|
||||
@cd vagrant/freebsd/$* && vagrant destroy -f
|
||||
cd vagrant/freebsd/$* && vagrant up
|
||||
|
||||
# SSH to a freebsd_<lang> vagrant machine (debug).
|
||||
targets_freebsd = $(addprefix sh_freebsd_, $(LANGUAGES))
|
||||
.PHONY: $(targets_freebsd)
|
||||
$(targets_freebsd): sh_freebsd_%:
|
||||
cd vagrant/freebsd/$* && vagrant ssh
|
||||
|
||||
# Clean FreeBSD vagrant machine
|
||||
targets_freebsd = $(addprefix clean_freebsd_, $(LANGUAGES))
|
||||
.PHONY: clean_freebsd $(targets_freebsd)
|
||||
clean_freebsd: $(targets_freebsd)
|
||||
$(targets_freebsd): clean_freebsd_%:
|
||||
cd vagrant/freebsd/$* && vagrant destroy -f
|
||||
-rm -rf vagrant/freebsd/$*/.vagrant
|
||||
|
||||
|
||||
# CLEAN
|
||||
targets = $(addprefix clean_, $(DISTROS))
|
||||
@@ -317,11 +337,9 @@ clean: $(targets) $(vms)
|
||||
-rmdir cache
|
||||
$(targets): clean_%: $(addprefix clean_%_, $(PRESTAGES)) $(addprefix clean_%_, $(STAGES))
|
||||
-rmdir cache/$*
|
||||
$(vms): clean_%:
|
||||
cd vagrant/$* && vagrant destroy -f
|
||||
-rm -rf vagrant/$*/.vagrant
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
||||
-docker container rm -f $$(docker container ls -aq)
|
||||
-docker image rm -f $$(docker image ls -aq)
|
||||
-vagrant box remove -f generic/freebsd12
|
||||
|
||||
@@ -14,7 +14,9 @@ Vagrant.configure("2") do |config|
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.guest = :freebsd
|
||||
config.vm.box = "generic/freebsd12"
|
||||
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.name = "ortools_freebsd_cpp"
|
||||
end
|
||||
config.ssh.shell = "sh"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
@@ -75,18 +77,18 @@ Vagrant.configure("2") do |config|
|
||||
pkg install -y git cmake
|
||||
SHELL
|
||||
|
||||
config.vm.provision "file", source: "../../../CMakeLists.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../cmake", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../ortools", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../examples/contrib", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../examples/cpp", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../examples/dotnet", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../examples/java", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../examples/python", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../examples/tests", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../patches", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../Version.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../dependencies", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/"
|
||||
|
||||
config.vm.provision "devel", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
118
cmake/vagrant/freebsd/dotnet/Vagrantfile
vendored
Normal file
118
cmake/vagrant/freebsd/dotnet/Vagrantfile
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure("2") do |config|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.guest = :freebsd
|
||||
config.vm.box = "generic/freebsd12"
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.name = "ortools_freebsd_dotnet"
|
||||
end
|
||||
config.ssh.shell = "sh"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine. In the example below,
|
||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||
# NOTE: This will enable public access to the opened port
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine and only allow access
|
||||
# via 127.0.0.1 to disable public access
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
# config.vm.network "public_network"
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
# the path on the guest to mount the folder. And the optional third
|
||||
# argument is a set of non-required options.
|
||||
#config.vm.synced_folder "../../..", "/home/vagrant/project"
|
||||
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
|
||||
|
||||
|
||||
# Provider-specific configuration so you can fine-tune various
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
# config.vm.provider "virtualbox" do |vb|
|
||||
# # Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
#
|
||||
# # Customize the amount of memory on the VM:
|
||||
# vb.memory = "1024"
|
||||
# end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
|
||||
# Enable provisioning with a shell script. Additional provisioners such as
|
||||
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||
# documentation for more information about their specific syntax and use.
|
||||
# note: clang installed by default
|
||||
config.vm.provision "env", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
pkg update -f
|
||||
pkg install -y git cmake
|
||||
kldload linux64
|
||||
pkg install -y swig linux-dotnet-sdk
|
||||
SHELL
|
||||
|
||||
config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/"
|
||||
|
||||
config.vm.provision "devel", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
ls
|
||||
SHELL
|
||||
|
||||
config.vm.provision "configure", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake -S. -Bbuild -DBUILD_DOTNET=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
|
||||
SHELL
|
||||
|
||||
config.vm.provision "build", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake --build build -v
|
||||
SHELL
|
||||
|
||||
config.vm.provision "test", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake --build build --target test -v
|
||||
SHELL
|
||||
end
|
||||
120
cmake/vagrant/freebsd/java/Vagrantfile
vendored
Normal file
120
cmake/vagrant/freebsd/java/Vagrantfile
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure("2") do |config|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.guest = :freebsd
|
||||
config.vm.box = "generic/freebsd12"
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.name = "ortools_freebsd_java"
|
||||
end
|
||||
config.ssh.shell = "sh"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine. In the example below,
|
||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||
# NOTE: This will enable public access to the opened port
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine and only allow access
|
||||
# via 127.0.0.1 to disable public access
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
# config.vm.network "public_network"
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
# the path on the guest to mount the folder. And the optional third
|
||||
# argument is a set of non-required options.
|
||||
#config.vm.synced_folder "../../..", "/home/vagrant/project"
|
||||
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
|
||||
|
||||
|
||||
# Provider-specific configuration so you can fine-tune various
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
# config.vm.provider "virtualbox" do |vb|
|
||||
# # Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
#
|
||||
# # Customize the amount of memory on the VM:
|
||||
# vb.memory = "1024"
|
||||
# end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
|
||||
# Enable provisioning with a shell script. Additional provisioners such as
|
||||
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||
# documentation for more information about their specific syntax and use.
|
||||
# note: clang installed by default
|
||||
config.vm.provision "env", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
pkg update -f
|
||||
pkg install -y git cmake
|
||||
pkg install -y swig openjdk11 maven
|
||||
mount -t fdescfs fdesc /dev/fd
|
||||
mount -t procfs proc /proc
|
||||
SHELL
|
||||
|
||||
config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/"
|
||||
|
||||
config.vm.provision "devel", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
ls
|
||||
SHELL
|
||||
|
||||
config.vm.provision "configure", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
export JAVA_HOME=/usr/local/openjdk11
|
||||
cmake -S. -Bbuild -DBUILD_JAVA=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
|
||||
SHELL
|
||||
|
||||
config.vm.provision "build", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake --build build -v
|
||||
SHELL
|
||||
|
||||
config.vm.provision "test", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake --build build --target test -v
|
||||
SHELL
|
||||
end
|
||||
118
cmake/vagrant/freebsd/python/Vagrantfile
vendored
Normal file
118
cmake/vagrant/freebsd/python/Vagrantfile
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure("2") do |config|
|
||||
# The most common configuration options are documented and commented below.
|
||||
# For a complete reference, please see the online documentation at
|
||||
# https://docs.vagrantup.com.
|
||||
|
||||
# Every Vagrant development environment requires a box. You can search for
|
||||
# boxes at https://vagrantcloud.com/search.
|
||||
config.vm.guest = :freebsd
|
||||
config.vm.box = "generic/freebsd12"
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.name = "ortools_freebsd_python"
|
||||
end
|
||||
config.ssh.shell = "sh"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine. In the example below,
|
||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
||||
# NOTE: This will enable public access to the opened port
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
||||
|
||||
# Create a forwarded port mapping which allows access to a specific port
|
||||
# within the machine from a port on the host machine and only allow access
|
||||
# via 127.0.0.1 to disable public access
|
||||
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Create a public network, which generally matched to bridged network.
|
||||
# Bridged networks make the machine appear as another physical device on
|
||||
# your network.
|
||||
# config.vm.network "public_network"
|
||||
|
||||
# Share an additional folder to the guest VM. The first argument is
|
||||
# the path on the host to the actual folder. The second argument is
|
||||
# the path on the guest to mount the folder. And the optional third
|
||||
# argument is a set of non-required options.
|
||||
#config.vm.synced_folder "../../..", "/home/vagrant/project"
|
||||
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
|
||||
|
||||
|
||||
# Provider-specific configuration so you can fine-tune various
|
||||
# backing providers for Vagrant. These expose provider-specific options.
|
||||
# Example for VirtualBox:
|
||||
#
|
||||
# config.vm.provider "virtualbox" do |vb|
|
||||
# # Display the VirtualBox GUI when booting the machine
|
||||
# vb.gui = true
|
||||
#
|
||||
# # Customize the amount of memory on the VM:
|
||||
# vb.memory = "1024"
|
||||
# end
|
||||
#
|
||||
# View the documentation for the provider you are using for more
|
||||
# information on available options.
|
||||
|
||||
# Enable provisioning with a shell script. Additional provisioners such as
|
||||
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
|
||||
# documentation for more information about their specific syntax and use.
|
||||
# note: clang installed by default
|
||||
config.vm.provision "env", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
pkg update -f
|
||||
pkg install -y git cmake
|
||||
pkg install -y swig python py37-pip
|
||||
SHELL
|
||||
|
||||
config.vm.provision "file", source: "../../../../CMakeLists.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../cmake", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../ortools", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../examples/contrib", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/cpp", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/dotnet", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/java", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/python", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../examples/tests", destination: "$HOME/project/examples/"
|
||||
config.vm.provision "file", source: "../../../../patches", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../Version.txt", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../dependencies", destination: "$HOME/project/"
|
||||
config.vm.provision "file", source: "../../../../test.py.in", destination: "$HOME/project/"
|
||||
|
||||
config.vm.provision "devel", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
ls
|
||||
SHELL
|
||||
|
||||
config.vm.provision "configure", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake -S. -Bbuild -DBUILD_PYTHON=ON -DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
|
||||
SHELL
|
||||
|
||||
config.vm.provision "build", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake --build build -v
|
||||
SHELL
|
||||
|
||||
config.vm.provision "test", type: "shell", inline:<<-SHELL
|
||||
set -x
|
||||
cd project
|
||||
cmake --build build --target test -v
|
||||
SHELL
|
||||
end
|
||||
Reference in New Issue
Block a user