Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-17418

Update TSSW CI Infrastructure

    XMLWordPrintable

    Details

    • Epic Name:
      Update TSSW CI Infrastructure
    • Story Points:
      13
    • WBS:
      1.04C.15.6 (Build System)
    • Team:
      Telescope and Site

      Description

      Update TSSW CI Infrastructure

        Attachments

        Stories in Epic (Custom Issue Matrix)

          Activity

          Hide
          rowen Russell Owen added a comment -

          Rob Bovill two questions:

          • Where can I see the Jenkins output from these tests
          • Is Jenkins running the formal unit tests in ts_sal (the Python tests in ts_sal/tests)?
          Show
          rowen Russell Owen added a comment - Rob Bovill two questions: Where can I see the Jenkins output from these tests Is Jenkins running the formal unit tests in ts_sal (the Python tests in ts_sal/tests)?
          Hide
          rbovill Rob Bovill added a comment -
          1. Go to https://ts-ci.lsst.codes/job/ts_sal/ and look for jenkins_report.html (you can also find these reports for individual builds by clicking on the build #)
          2. Not currently.  I just sent you a message asking for a write up on how to execute those tests.
          Show
          rbovill Rob Bovill added a comment - Go to https://ts-ci.lsst.codes/job/ts_sal/ and look for jenkins_report.html (you can also find these reports for individual builds by clicking on the build #) Not currently.  I just sent you a message asking for a write up on how to execute those tests.
          Hide
          rowen Russell Owen added a comment - - edited

          That's a nice display! This may be a question for Andy Clements but I would be a lot more comfortable passing this epic if Jenkins also ran the Python unit tests tests/*.py. I hope it will not be too onerous to add that. As a point of information: i just ran these tests myself on the latest "develop" and many failed. Worrisome...

          For the record, to run those tests:`scons` is the simplest method, if it's available to Jenkins. This builds the Test and Script SALPY libraries and then runs the tests in the "tests" directory using (at least approximately) pytest -n <N> tests/*.py where <N> is the number of cores (and I don't know how scons picks that).

          Note that pytest writes a file that is supposed to be easily machine parseable, to determine if the tests pass. I believe Tim Jenness is an expert on that.

          The -n <N> is optional; it speeds up the tests and stresses SAL a bit more by running things in parallel.

          If you want to avoid using eups and scons then I think the following steps are needed for ts_sal:

          • Copy any *.py files from bin.src/ to bin/
          • Add bin/ to the PATH environment variable
          • Add python/ to the PYTHONPATH environment variable
          • Create text file python/lsst/ts/sal/version.py that contains an entry __version__.py=v1.0.0 or some other valid tag (it doesn't have to be the right tag, nothing checks that).

          Define the following environment variables:

          • TS_SAL_DIR: path to ts_sal
          • TS_XML_DIR: path to ts_xml
          • SAL_WORK_DIR: the usual, presumably already defined
          • LD_LIBRARY_PATH: add the path to ts_sal/lib

          When we get to testing other packages then the lack of scons and eups will be more keenly felt, as these steps will have to be done not only for the package being tested, but also all ts_ packages it depends on. It might be simpler to use a Docker container such as queue/lsst and use eups and scons in the usual way.

          Show
          rowen Russell Owen added a comment - - edited That's a nice display! This may be a question for Andy Clements but I would be a lot more comfortable passing this epic if Jenkins also ran the Python unit tests tests/*.py . I hope it will not be too onerous to add that. As a point of information: i just ran these tests myself on the latest "develop" and many failed. Worrisome... For the record, to run those tests:`scons` is the simplest method, if it's available to Jenkins. This builds the Test and Script SALPY libraries and then runs the tests in the "tests" directory using (at least approximately) pytest -n <N> tests/*.py where <N> is the number of cores (and I don't know how scons picks that). Note that pytest writes a file that is supposed to be easily machine parseable, to determine if the tests pass. I believe Tim Jenness is an expert on that. The -n <N> is optional; it speeds up the tests and stresses SAL a bit more by running things in parallel. If you want to avoid using eups and scons then I think the following steps are needed for ts_sal: Copy any *.py files from bin.src/ to bin/ Add bin/ to the PATH environment variable Add python/ to the PYTHONPATH environment variable Create text file python/lsst/ts/sal/version.py that contains an entry __version__.py=v1.0.0 or some other valid tag (it doesn't have to be the right tag, nothing checks that). Define the following environment variables: TS_SAL_DIR: path to ts_sal TS_XML_DIR: path to ts_xml SAL_WORK_DIR: the usual, presumably already defined LD_LIBRARY_PATH: add the path to ts_sal/lib When we get to testing other packages then the lack of scons and eups will be more keenly felt, as these steps will have to be done not only for the package being tested, but also all ts_ packages it depends on. It might be simpler to use a Docker container such as queue/lsst and use eups and scons in the usual way.
          Hide
          tjenness Tim Jenness added a comment -

          The JUnit output from pytest requires a special command line argument that SConsUtils uses when it launches pytest.

          Show
          tjenness Tim Jenness added a comment - The JUnit output from pytest requires a special command line argument that SConsUtils uses when it launches pytest.
          Hide
          rowen Russell Owen added a comment -

          Thank you very much for adding execution of the Python unit tests. Well done!

          I will confess to being unhappy that the web page can only be viewed on specific browsers after disabling important security. But I think fixing that is out of scope for this Epic and it is clearly non-trivial.

          Show
          rowen Russell Owen added a comment - Thank you very much for adding execution of the Python unit tests. Well done! I will confess to being unhappy that the web page can only be viewed on specific browsers after disabling important security. But I think fixing that is out of scope for this Epic and it is clearly non-trivial.

            People

            Assignee:
            rbovill Rob Bovill
            Reporter:
            jbuffill James Buffill [X] (Inactive)
            Reviewers:
            Russell Owen
            Watchers:
            Andy Clements, Rob Bovill, Russell Owen, Tim Jenness
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Start date:
              End date:

                Jenkins

                No builds found.