diff --git a/.gitignore b/.gitignore index c46a9ec6..83da161d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,3 @@ -# Add patterns in here to exclude files created by tools integrated with this -# repository, such as test frameworks from the project's recommended workflow, -# rendered documentation and package builds. -# -# Don't add patterns to exclude files created by preferred personal tools -# (editors, IDEs, your operating system itself even). These should instead be -# maintained outside the repository, for example in a ~/.gitignore file added -# with: -# -# git config --global core.excludesfile '~/.gitignore' - # Compiled source # ################### *.com @@ -21,6 +10,7 @@ build/ dist/ doc/build/ +deploy-guide/build/ # Packages # ############ @@ -44,11 +34,26 @@ logs/* # OS generated files # ###################### +.DS_Store +.DS_Store? ._* -.ansible +.Spotlight-V100 +.Trashes +.idea .tox +*.sublime* *.egg-info +Icon? +ehthumbs.db +Thumbs.db .eggs +.coverage +*.retry + +# User driven backup files # +############################ +*.bak +*.swp # Generated by pbr while building docs ###################################### @@ -58,13 +63,17 @@ ChangeLog # Files created by releasenotes build releasenotes/build -# Test temp files -tests/common -tests/*.retry - # Vagrant artifacts .vagrant -# Git clones -openstack-ansible-ops -previous +# run playbooks tests +playbooks/root-include-playbook.yml +playbooks/include-playbook.yml* +playbooks/logs + +# ignore zanata/sphinx cache on translation job +.zanata-cache/ +doc/source/.doctrees/ + +# ignore fetched upper-contraints file while translation job +upper-constraints.txt diff --git a/Vagrantfile b/Vagrantfile index 2a83de46..2edeb8fb 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,10 +1,14 @@ -# Note: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/Vagrantfile +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# If you need to perform any change on it, you should modify the central file, -# then, an OpenStack CI job will propagate your changes to every OSA repository -# since every repo uses the same Vagrantfile +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # Verify whether required plugins are installed. required_plugins = [ "vagrant-disksize" ] @@ -15,32 +19,49 @@ required_plugins.each do |plugin| end Vagrant.configure(2) do |config| + + # Configure all VM specs. config.vm.provider "virtualbox" do |v| - v.memory = 6144 - v.cpus = 2 - # https://github.com/hashicorp/vagrant/issues/9524 - v.customize ["modifyvm", :id, "--audio", "none"] + v.memory = 12288 + v.cpus = 4 end config.vm.synced_folder ".", "/vagrant", type: "rsync" - config.vm.provision "shell", - privileged: false, + # Configure the disk size. + disk_size = "60GB" + + config.vm.define "opensuse423" do |leap423| + leap423.disksize.size = disk_size + leap423.vm.box = "opensuse/openSUSE-42.3-x86_64" + leap423.vm.provision "shell", + # NOTE(hwoarang) The parted version in Leap 42.3 can't do an online + # partition resize so we must create a new one and attach it to the + # btrfs filesystem. + privileged: true, inline: <<-SHELL - cd /vagrant - ./run_tests.sh + cd /vagrant + echo -e 'd\n2\nn\np\n\n\n\nn\nw' | fdisk /dev/sda + PART_END=$(fdisk -l /dev/sda | grep ^/dev/sda2 | awk '{print $4}') + resizepart /dev/sda 2 $PART_END + btrfs fi resize max / + ./scripts/gate-check-commit.sh SHELL - - config.vm.define "centos8" do |centos8| - centos8.vm.box = "centos/8" end - config.vm.define "debian10" do |debian10| - debian10.vm.box = "debian/buster64" + config.vm.define "opensuse150" do |leap150| + leap150.disksize.size = disk_size + leap150.vm.box = "opensuse/openSUSE-15.0-x86_64" + leap150.vm.provision "shell", + privileged: true, + inline: <<-SHELL + cd /vagrant + zypper -qn in gdisk + echo -e 'x\ne\nw\ny\n' | gdisk /dev/sda + parted -s /dev/sda unit GB resizepart 3 100% + btrfs fi resize max / + ./scripts/gate-check-commit.sh + SHELL end - config.vm.define "ubuntu2004" do |focal| - focal.disksize.size = "40GB" - focal.vm.box = "ubuntu/focal64" - end end diff --git a/bindep.txt b/bindep.txt index 3db7d137..cd5dd12c 100644 --- a/bindep.txt +++ b/bindep.txt @@ -3,24 +3,12 @@ # # See the following for details: # - https://docs.openstack.org/infra/bindep/ -# - https://opendev.org/openstack-infra/bindep +# - https://opendev.org/opendev/bindep/ # # Even if the role does not make use of this facility, it # is better to have this file empty, otherwise OpenStack-CI # will fall back to installing its default packages which # will potentially be detrimental to the tests executed. -# -# Note: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/bindep.txt -# If you need to remove or add extra dependencies, you should modify -# the central file instead and once your change is accepted then update -# this file as well. The purpose of this file is to ensure that Python and -# Ansible have all their necessary binary requirements on the test host before -# tox executes. Any binary requirements needed by services/roles should be -# installed by those roles in their applicable package install tasks, not through -# using this file. -# # The gcc compiler gcc @@ -38,10 +26,17 @@ gcc-c++ [platform:rpm] git [platform:rpm] libffi-devel [platform:rpm] openssl-devel [platform:rpm] -python3-dnf [platform:fedora] python3-devel [platform:rpm] # For SELinux -libselinux-python3 [platform:redhat] -libsemanage-python3 [platform:redhat] -iptables [platform:redhat] +python3-libselinux [platform:redhat] +python3-libsemanage [platform:redhat] + +# Required for compressing collected log files in CI +gzip +# Required to build language docs +gettext + +# libsrvg2 is needed for sphinxcontrib-svg2pdfconverter in docs builds. +librsvg2-tools [doc platform:rpm] +librsvg2-bin [doc platform:dpkg] diff --git a/run_tests.sh b/run_tests.sh index 35280c84..d80eb041 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -53,13 +53,16 @@ source /etc/os-release || source /usr/lib/os-release # Figure out the appropriate package install command case ${ID,,} in - centos|rhel|fedora|rocky) pkg_mgr_cmd="dnf install -y" ;; + *suse*) pkg_mgr_cmd="zypper -n in" ;; + centos|rhel|rocky|fedora) pkg_mgr_cmd="dnf install -y" ;; ubuntu|debian) pkg_mgr_cmd="apt-get install -y" ;; + # Gentoo needs to have version set since it's rolling + gentoo) pkg_mgr_cmd="emerge --jobs=4"; VERSION="rolling" ;; *) echo "unsupported distribution: ${ID,,}"; exit 1 ;; esac # Install git so that we can clone the tests repo if git is not available -which git &>/dev/null || eval sudo "${pkg_mgr_cmd}" git +command -v git &>/dev/null || eval sudo "${pkg_mgr_cmd}" git # Clone the tests repo for access to the common test script if [[ ! -d "${COMMON_TESTS_PATH}" ]]; then @@ -86,3 +89,4 @@ fi # Execute the common test script source tests/common/run_tests_common.sh +