mirror of
https://github.com/YunoHost/package_check.git
synced 2024-09-03 20:06:20 +02:00
Merge a3f62cf101
into 127ffc18f3
This commit is contained in:
commit
451cc9c248
7 changed files with 172 additions and 1 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
.*
|
||||
*.swp
|
||||
*~
|
||||
Notes
|
||||
|
@ -11,3 +12,6 @@ config
|
|||
curl_print
|
||||
|
||||
*.lock
|
||||
|
||||
vagrant/repos/
|
||||
!vagrant/repos/.gitkeep
|
|
@ -114,6 +114,13 @@ Then test your packages :
|
|||
./package_check.sh your_app_ynh
|
||||
```
|
||||
|
||||
## Run package check in a VirtualBox VM via Vagrant
|
||||
|
||||
We add script to run package check in a VirtualBox. More information here:
|
||||
|
||||
* [vagrant/README.md](https://github.com/YunoHost/package_check/tree/master/vagrant)
|
||||
|
||||
|
||||
## You can start a container on a different architecture with some hacks
|
||||
|
||||
Install the package `qemu-user-static` and `binfmt-support`, then list of all available images :
|
||||
|
|
75
vagrant/README.md
Normal file
75
vagrant/README.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
# "package check" via Vagrant
|
||||
|
||||
Run [package check](https://github.com/YunoHost/package_check) in a [VirtualBox](https://www.virtualbox.org/) VM by using [Vagrant](https://www.vagrantup.com/).
|
||||
|
||||
## prepare
|
||||
|
||||
install VirtualBox and Vagrant:
|
||||
|
||||
```
|
||||
sudo apt install virtualbox vagrant
|
||||
```
|
||||
|
||||
Directory overview:
|
||||
```
|
||||
~$ tree package_check/ -dA
|
||||
package_check/
|
||||
├── lib
|
||||
└── vagrant <<< main directory to setup/start package check via Vagrant
|
||||
├── repos <<< clone your YunoHost apps here
|
||||
│ └── pyinventory_ynh <<< just a clone example
|
||||
│ ├── conf
|
||||
│ ├── scripts
|
||||
│ └── tests
|
||||
└── scripts
|
||||
```
|
||||
|
||||
Startup, e.g.:
|
||||
```
|
||||
# Clone package check:
|
||||
~$ git clone https://github.com/YunoHost/package_check.git
|
||||
|
||||
# Clone the YunoHost app that you would like to ckec into "repos":
|
||||
~$ cd package_check/vagrant/repos
|
||||
~/package_check/vagrant/repos$ git clone https://github.com/YunoHost-Apps/pyinventory_ynh.git
|
||||
|
||||
# Start the VirtualBox VM anr run the check:
|
||||
~/package_check/vagrant$ ./run_package_check.sh repos/pyinventory_ynh/
|
||||
```
|
||||
|
||||
## update
|
||||
|
||||
Quick update can look like:
|
||||
```
|
||||
# Update package check:
|
||||
~$ cd package_check
|
||||
~/package_check$ git pull origin master
|
||||
|
||||
# quick update the VM:
|
||||
~$ cd package_check/vagrant
|
||||
~/package_check/vagrant$ vagrant reload --provision
|
||||
```
|
||||
|
||||
To get everything completely fresh: destroy the VM and recreate it, e.g.:
|
||||
|
||||
```
|
||||
~$ cd package_check/vagrant
|
||||
~/package_check/vagrant$ vagrant destroy --force
|
||||
|
||||
# Just recreate the VM by run the check, e.g.:
|
||||
~/package_check/vagrant$ ./run_package_check.sh repos/pyinventory_ynh/
|
||||
```
|
||||
|
||||
## uninstall/cleanup
|
||||
|
||||
To remove the VM, just destroy it, e.g.:
|
||||
|
||||
```
|
||||
~$ cd package_check/vagrant
|
||||
~/package_check/vagrant$ vagrant destroy --force
|
||||
```
|
||||
|
||||
## Links
|
||||
|
||||
* Vagrant docs: https://docs.vagrantup.com
|
||||
* YunoHost "package check": https://github.com/YunoHost/package_check
|
25
vagrant/Vagrantfile
vendored
Normal file
25
vagrant/Vagrantfile
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# https://docs.vagrantup.com
|
||||
# https://github.com/YunoHost/package_check
|
||||
|
||||
|
||||
Vagrant.configure("2") do |config|
|
||||
|
||||
# https://app.vagrantup.com/ubuntu/boxes/focal64
|
||||
config.vm.box = "ubuntu/focal64"
|
||||
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.name = "package_check"
|
||||
vb.cpus = 4
|
||||
vb.memory = "2048"
|
||||
end
|
||||
|
||||
# https://www.vagrantup.com/docs/synced-folders/basic_usage
|
||||
config.vm.synced_folder "../", "/home/vagrant/package_check/"
|
||||
|
||||
# https://www.vagrantup.com/docs/provisioning/shell
|
||||
config.vm.provision "shell", inline: <<-SHELL
|
||||
pwd
|
||||
id
|
||||
./package_check/vagrant/scripts/provision.sh
|
||||
SHELL
|
||||
end
|
22
vagrant/run_package_check.sh
Executable file
22
vagrant/run_package_check.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [ "$1" == "" ]; then
|
||||
echo "ERROR: Missing repro name as argument!"
|
||||
echo "e.g.:"
|
||||
echo "~$ cd package_check/vagrant/repos"
|
||||
echo "~/package_check/vagrant/repos$ git clone https://github.com/YunoHost-Apps/pyinventory_ynh.git"
|
||||
echo "~/package_check/vagrant/repos$ cd .."
|
||||
echo "~/package_check/vagrant$ ./run_package_check.sh repos/pyinventory_ynh"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
echo "Package check: '${1}'"
|
||||
if [ ! -d "${1}" ]; then
|
||||
echo "ERROR: Repro '${1}' not found !"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
vagrant up
|
||||
vagrant ssh -c "/home/vagrant/package_check/vagrant/scripts/run.sh ${1}"
|
22
vagrant/scripts/provision.sh
Executable file
22
vagrant/scripts/provision.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
|
||||
apt-get update
|
||||
apt-get dist-upgrade
|
||||
|
||||
apt-get install -y python3-pip git snapd lynx jq
|
||||
|
||||
snap install core
|
||||
snap refresh lxd
|
||||
|
||||
ln -sf /snap/bin/lxc /usr/local/bin/lxc
|
||||
ln -sf /snap/bin/lxd /usr/local/bin/lxd
|
||||
|
||||
gpasswd -a vagrant lxd
|
||||
|
||||
lxd init --auto
|
||||
|
||||
lxc remote add yunohost https://devbaseimgs.yunohost.org --public --accept-certificate
|
||||
|
||||
exit 0
|
16
vagrant/scripts/run.sh
Executable file
16
vagrant/scripts/run.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd /home/vagrant/package_check/vagrant/
|
||||
|
||||
echo "Package check: '${1}'"
|
||||
|
||||
if [ ! -d "${1}" ]; then
|
||||
echo "ERROR: Repro '${1}' not found!"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
lxd init --auto
|
||||
|
||||
/home/vagrant/package_check/package_check.sh "${1}"
|
Loading…
Add table
Reference in a new issue