openstack-zuul-jobs/playbooks/legacy/js-openstack-lib-dsvm-nodejs6-npm-run-functional-test/run.yaml
Monty Taylor 1075bbd082
Add workspace directory for converted legacy jobs
This isn't really a thing in v3, but structurally it's a thing we
need to provide to v2 jobs so they don't get confused.

Change-Id: Icb528444f44f18ca29e02154513b9facefd04c89
2017-09-27 08:14:22 -05:00

176 lines
6.0 KiB
YAML

- hosts: all
name: Autoconverted job legacy-js-openstack-lib-dsvm-nodejs6-npm-run-functional-test
from old job js-openstack-lib-dsvm-nodejs6-npm-run-functional-test
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
CLONEMAP=`mktemp`
function cleanup {
# In cases where zuul-cloner is aborted during a git
# clone operation, git will remove the git work tree in
# its cleanup. The work tree in these jobs is the
# workspace directory, which means that subsequent
# jenkins post-build actions can not run because the
# workspace has been removed.
# To reduce the likelihood of this having an impact,
# recreate the workspace directory if needed
mkdir -p $WORKSPACE
rm -f $CLONEMAP
}
trap cleanup EXIT
cat > $CLONEMAP << EOF
clonemap:
- name: $ZUUL_PROJECT
dest: .
EOF
/usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
git://git.openstack.org $ZUUL_PROJECT
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -u
set -e
set -x
# Prerequisites
sudo apt-get update
sudo apt-get install -y apt-transport-https lsb-release curl
DISTRO=$(lsb_release -c -s)
# Install via nodesource
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
echo "deb https://deb.nodesource.com/node_6.x $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.list
echo "deb-src https://deb.nodesource.com/node_6.x $DISTRO main" | sudo tee -a /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install -y nodejs
# Output to the log for debugging sake.
node --version
npm --version
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
sudo apt-get update
sudo apt-get install -y xvfb
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
sudo apt-get update
sudo apt-get install -y chromium-browser
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
sudo apt-get update
sudo apt-get install -y firefox dbus
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack-infra/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
git://git.openstack.org \
openstack-infra/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
DIMENSIONS='1280x1024x24'
/usr/bin/Xvfb :99 -screen 0 ${DIMENSIONS} -ac +extension GLX +render -noreset 2>&1 > /dev/null &
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -u
set -e
set -x
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_TEMPEST=0
export DEVSTACK_GATE_EXERCISES=0
export DEVSTACK_GATE_INSTALL_TESTONLY=1
export DEVSTACK_GATE_NEUTRON=1
# Xvfb Buffer...
export DISPLAY=:99
npm install
npm_lifecycle_phases="publish install version test stop start restart pack"
# Run any custom devstack configuration required by the project
function pre_test_hook {
# Try running as a standard lifecycle script, otherwise try custom.
if [[ $npm_lifecycle_phases =~ (^| )configure-devstack($| ) ]]; then
npm configure-devstack --silent
else
npm run configure-devstack --silent
fi
}
export -f pre_test_hook
function post_test_hook {
# If you need access to devstack clouds.yaml file, it is available
# at its canonical location at /etc/openstack/clouds.yaml
# Try running as a standard lifecycle script, otherwise try custom.
if [[ $npm_lifecycle_phases =~ (^| )functional-test($| ) ]]; then
npm functional-test --silent
else
npm run functional-test --silent
fi
}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
OUT=`git ls-files --other --exclude-standard --directory`
if [ -z "$OUT" ]; then
echo "No extra files created during test."
exit 0
else
echo "The following un-ignored files were created during the test:"
echo "$OUT"
exit 0 # TODO: change to 1 to fail tests.
fi
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'