Don't Matrix Deployments Clobber Each Other?

[I’m new to Travis-CI. Please forgive any mistakes in terms.]

(I think) I want to build and test on {py2,py3} x {Linux,Windows,Mac} – so I’ve created a 5-item matrix that seems to be working. Here is my current .travis.yml. (I left off py2 Mac, but that is OK).

(I think) I want to deploy

  • Py3 Win Wheel: pysnptools-0.4.11-cp27-cp27m-win_amd64.whl
  • Py2 Win Wheel: pysnptools-0.4.11-cp37-cp37m-win_amd64.whl
  • Linux&Mac: pysnptools-0.4.11.tar.gz
    (This is what we’ve been doing on PyPI)

Questions:

  • Given that all 5 matrix jobs create the *.tar.gz, won’t they clobber each other on deployment?
  • Is there a way to deploy only if all five matrix tests succeed?
  • Does anyone have an example of deploying all branches to GitHub releases (with draft: true)?

Thanks,
Carl
FaST-LMM & PySnpTools Team

If the files are deployed to the same place (by whatever mechanism you choose), they will be. The files from different architectures/OSes etc. should not go to the same place, but maybe your deployment target enforces this rule. Sometimes the file names may be identical, but the path may not be; e.g., https://example.com/:os/:release/:arch/pysnptools-0.4.11.tar.gz. You’ll have to check with your deployment target’s documentation.


You are looking for:

Roughly speaking, you’d have a “Build” stage that builds these binary files, then a “Deploy” stage, the sole purpose of which is to gather the build artifacts from the jobs in the previous stage and deploy them.

To gather the build artifacts, you can use

or another custom solution.

1 Like