install-javascript-packages: add tox_constraints_file

I can't exactly say why, but the horizon postinstall in package.json
runs "tox -e npm" [1].  This then installs from requirements [2].

The requirements gate run a cross-horizon-npm job that ends up calling
this.  The short story is that if you modify upper-constraints.txt in
a requirements change, it is not picked up by this job.

Add tox_constraints_file to this job, so we can set the path to the
zuul checked-out version for the test.

[1] e515713084/package.json (L22)
[2] e515713084/tox.ini (L23)

Needed-By: https://review.opendev.org/709389
Change-Id: Ia7dd5af19b42c2ab53dfb70f92e184b0dc215d03
This commit is contained in:
Ian Wienand 2020-02-24 17:34:31 +11:00
parent 22b0ed2c4d
commit ec09127ca3
3 changed files with 31 additions and 2 deletions

View File

@ -6,3 +6,9 @@ Install javascript dependencies needed for a project
:default: {{ zuul.project.src_dir }}
The directory to work in.
.. zuul:rolevar:: tox_constraints_file
Path to a pip constraints file. Will set the
``UPPER_CONSTRAINTS_FILE`` environment variable. Useful if npm
``postinstall`` runs tox.

View File

@ -1 +1,3 @@
npm_environment:
DISPLAY: ':99'
zuul_work_dir: "{{ zuul.project.src_dir }}"

View File

@ -1,3 +1,25 @@
- name: Check to see if the constraints file exists
stat:
path: "{{ tox_constraints_file }}"
get_checksum: false
get_mime: false
get_md5: false
register: stat_results
when: tox_constraints_file is defined
- name: Fail if constraints file is missing
when: tox_constraints_file is defined and not stat_results.stat.exists
fail:
msg: tox_constraints_file is defined but was not found
- name: Record file location
set_fact:
tox_constraints_env:
TOX_CONSTRAINTS_FILE: "{{ tox_constraints_file }}"
# Backward compatibility, to be removed
UPPER_CONSTRAINTS_FILE: "{{ tox_constraints_file }}"
when: tox_constraints_file is defined
- name: Check for yarn.lock file
stat:
path: "{{ zuul_work_dir }}/yarn.lock"
@ -16,8 +38,7 @@
- name: Install npm dependencies
command: npm install --verbose
environment:
DISPLAY: ':99'
environment: "{{ npm_environment|combine(tox_constraints_env|default({})) }}"
args:
chdir: "{{ zuul_work_dir }}"
when: not yarn_lock.stat.exists