- Matrix DOES work with deploy; deploy gets run for each matrix entry, environment variables carry over
- Non-tag releases behave strangely: Travis creates an "untagged" tag for each matrix entry (so you end up with multiple tags), and each show up as separate releases
- If you tag the release, each matrix entry gets bundled up in the same release. Untagged releases and draft releases get done separately.
Conclusion: do tagged releases only
- Bash condition is useful; you can use this to distinguish between matrix entries. This can help you filter out non-release matrix entries.
Is it a good idea to put the release build script and the regular build script together? You might think to create separate matrix entries for release and non-release.
- Problem: you can't "disable" matrix builds conditionally: everything in the matrix always runs
- For release, that's not so bad. But it sucks to have to queue a dead-on-arrival release job. One workaround: swap the script out.