All Projects â†’ japaric â†’ Trust

japaric / Trust

Licence: other
Travis CI and AppVeyor template to test your Rust crate on 5 architectures and publish binary releases of it for Linux, macOS and Windows

Programming Languages

shell
77523 projects
rust
11053 projects

Projects that are alternatives of or similar to Trust

Moderncppstarter
🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
Stars: ✭ 2,381 (+122.11%)
Mutual labels:  continuous-integration, template
Lncs
Improved Lecture Notes in Computer Science (LNCS) template
Stars: ✭ 208 (-80.6%)
Mutual labels:  continuous-integration, template
Modern Cpp Template
A template for modern C++ projects using CMake, Clang-Format, CI, unit testing and more, with support for downstream inclusion.
Stars: ✭ 690 (-35.63%)
Mutual labels:  continuous-integration, template
Bootstrap4layouts
A Template for Bootstrap 4 based on my Bootstrap 4 Layouts course on LinkedIn Learning
Stars: ✭ 44 (-95.9%)
Mutual labels:  template
Tail Kit
Tail-kit is a free and open source components and templates kit fully coded with Tailwind css 2.0.
Stars: ✭ 997 (-7%)
Mutual labels:  template
Piplin
📤 An open source self-hosted continuous integration and deployment system - QQ群: 656868
Stars: ✭ 1,044 (-2.61%)
Mutual labels:  continuous-integration
Jsdoc Baseline
An experimental, extensible template for JSDoc.
Stars: ✭ 51 (-95.24%)
Mutual labels:  template
Django Preserialize
Convert your model instances and querysets into dicts and list with style.
Stars: ✭ 42 (-96.08%)
Mutual labels:  template
Origin
Conformance test suite for OpenShift
Stars: ✭ 8,046 (+650.56%)
Mutual labels:  continuous-integration
Oa Apidoc Template
Live Demo
Stars: ✭ 47 (-95.62%)
Mutual labels:  template
Jekyll Timeline
Timeline / Résumé Theme with Jekyll
Stars: ✭ 46 (-95.71%)
Mutual labels:  template
Phaser3template
heroku deployable webpacked phaser3 template with socket.io for multi or single player games
Stars: ✭ 44 (-95.9%)
Mutual labels:  template
Raygun Rails
Rails 6 application template for Raygun, the Carbon Five Rails application generator.
Stars: ✭ 48 (-95.52%)
Mutual labels:  template
Minion Ci
minimalist, decentralized, flexible Continuous Integration Server for hackers.
Stars: ✭ 44 (-95.9%)
Mutual labels:  continuous-integration
Design Systems Office Hours Playbook
A playbook for running Design Systems office hours or attending them as a Design System representative. Use this as a template for making your own company Design Systems office hours playbook!
Stars: ✭ 49 (-95.43%)
Mutual labels:  template
Phug
Phug - The Pug Template Engine for PHP
Stars: ✭ 43 (-95.99%)
Mutual labels:  template
Churn Php
Discover files in need of refactoring.
Stars: ✭ 1,051 (-1.96%)
Mutual labels:  continuous-integration
Bug Bounty Responses
A collection of response templates for invalid bug bounty reports.
Stars: ✭ 46 (-95.71%)
Mutual labels:  template
Latexcv
👔 A collection of cv and resume templates written in LaTeX. Leave an issue if your language is not supported!
Stars: ✭ 1,027 (-4.2%)
Mutual labels:  template
Bad Commit Message Blocker
Inhibits commits with bad messages from getting merged
Stars: ✭ 48 (-95.52%)
Mutual labels:  continuous-integration

trust

Travis CI and AppVeyor template to test your Rust crate on 5 architectures and publish binary releases of it for Linux, macOS and Windows

Features

  • CI test your crate (library or binary) on Linux, macOS and Windows and on more than just the x86 architecture.

  • Cargo artifacts are cached and reused between CI builds.

  • "Deploys": Publish binary releases of your application by just pushing a new (Git) tag.

Requirements

  • Your crate must be hosted on GitHub (free).

  • A Travis CI account (free).

  • An AppVeyor account (free).

How-to

Use this template

Copy the ci directory, and the .travis.yml and appveyor.yml files into the repository where you host your Rust crate.

You'll have to adjust those files to meet your needs. Just look inside those files for comments that start with the word TODO; they'll tell you want needs to be changed.

This is an overview of what must / can be changed:

  • The GitHub token used for deploys.

  • The list of test targets. Trim it down to reduce test times.

  • The Rust channel used for testing / deploys.

  • The "test phase". Tweak how your crate is tested.

  • the "package phase". Tweak what goes into the release tarball / zipfile.

Generate binary releases

You only need to push an annotated tag to kick off the build process.

# Optional: Publish a new version of your crate to crates.io
$ cargo publish

$ git tag -a $TAG

$ git push origin $TAG

Use the binary releases on Travis CI

There's an install.sh script that you can use to quickly install a binary release produced using this CI template.

$ curl -LSfs https://japaric.github.io/trust/install.sh | \
    sh -s -- --git japaric/cross

For more details about this installation script see install.sh -h

How to disable deploys?

If you don't want to generate binary releases at all, perhaps because your Cargo project is a library or you only want to test your project, then you can simply change deploy.on.condition, in .travis.yml, and deploy.on, in appveyor.yml, to always be false. For example:

# .travis.yml
deploy:
  on:
    condition: $DEPLOY = never

How to upgrade your CI configuration?

First, figure out which version of the trust template you are using. The version is written in the header of the .travis.yml and appveyor.yml files. If there's no header, that means you are using version v0.1.0.

Next, look at the change log to check if there's a new release and to learn, at a high level, how the template has changed: what has been fixed, what has been added, etc.

If it makes sense for you to upgrade, you can see the required "code" changes by looking at the "diff" between the version you are using and the version you are going to upgrade to. For example:

https://github.com/japaric/trust/compare/v0.1.0...v0.1.1

As for the upgrade itself, GitHub can generate a patch from the above diff that then you can apply to your repository with git am or similar:

https://github.com/japaric/trust/compare/v0.1.0...v0.1.1.patch

Supported targets

Linux

Courtesy of cross.

If you run into any problem with any of these targets, report them to cross's issue tracker but first check if using a newer release (see ci/install.sh) would fix your problem.

Android

  • aarch64-linux-android

  • arm-linux-androideabi

  • armv7-linux-androideabi

  • i686-linux-android

  • x86_64-linux-android

iOS

  • aarch64-apple-ios

  • armv7-apple-ios

  • armv7s-apple-ios

  • i386-apple-ios

  • x86_64-apple-ios

Linux

  • i686-unknown-linux-gnu

  • i686-unknown-linux-musl

  • x86_64-unknown-linux-gnu

  • x86_64-unknown-linux-musl

  • aarch64-unknown-linux-gnu

  • arm-unknown-linux-gnueabi

  • armv7-unknown-linux-gnueabihf

  • mips-unknown-linux-gnu

  • mips64-unknown-linux-gnuabi64

  • mips64el-unknown-linux-gnuabi64

  • mipsel-unknown-linux-gnu

  • powerpc-unknown-linux-gnu

  • powerpc64-unknown-linux-gnu

  • powerpc64le-unknown-linux-gnu

  • s390x-unknown-linux-gnu

macOS

  • i686-apple-darwin

  • x86_64-apple-darwin

*BSD

  • i686-unknown-freebsd

  • x86_64-unknown-freebsd

  • x86_64-unknown-netbsd

Windows (MinGW)

  • i686-pc-windows-gnu

  • x86_64-pc-windows-gnu

Windows (MSVC)

  • i686-pc-windows-msvc

  • x86_64-pc-windows-msvc

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].