Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to trust-based CI #528

Merged
merged 13 commits into from
Feb 26, 2017
Merged

Switch to trust-based CI #528

merged 13 commits into from
Feb 26, 2017

Conversation

berkowski
Copy link
Contributor

An attempt to switch to using trust for multi-arch CI

I selected triplets based on CI coverage in libc and nix:

  • i686-unknown-linux-gnu
  • x86_64-unknown-linux-gnu
  • i686-unknown-linux-musl
  • x86_64-unknown-linux-musl
  • i686-apple-darwin
  • x86_64-apple-darwin
  • i686-unknown-freebsd (cargo test not run)
  • x86_64-unknown-freebsd (cargo test not run)
  • x86_64-unknown-netbsd (cargo test not run)
  • aarch64-unknown-linux-gnu
  • armv7-unknown-linux-gnueabihf
  • mips-unknown-linux-gnu
  • mipsel-unknown-linux-gnu
  • powerpc-unknown-linux-gnu
  • arm-unknown-linux-gnueabi

Notable issues:

  • Would be nice to get the BSD tests to run cargo test
  • arm-linux-androideabi is not a current trust target
  • .travis.yml will need to be updated with a github token from nix-rust/nix instead of berkowski/nix

Other issues:

  • Using current stable rust -- switch to a pinned version?
    That being said, trust is catching a number of compile errors on various platforms. See https://travis-ci.org/berkowski/nix

ci/script.sh Outdated
@@ -7,7 +7,7 @@ main() {
cross build --target $TARGET
cross build --target $TARGET --release

if [ -n $DISABLE_TESTS ]; then
if [ ! -z $DISABLE_TESTS ]; then
Copy link
Member

@posborne posborne Feb 26, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this logic identical?

EDIT: I think what is really needed here may be quotes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quotes would fix it. -n is used in v0.1.1 of trust while the -z version is used on the HEAD of the master branch. I went with -z figuring it'll be switched to that anyway at some point.

ci/script.sh Outdated
cross run --target $TARGET --release
# nix is a library -- no run target
# cross run --target $TARGET
# cross run --target $TARGET --release
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably reasonable to update this commit to just delete these.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough, I'll prune it out.

@posborne
Copy link
Member

Ok, the errors that we are getting now seem legitimate. In order to distribute the load of fixing up the errors, I propose the following:

  • Maintainer will create a new branch call something like new-ci/master and we will merge this branch there.
  • We'll have a few PRs fixing various issues into the branch.
  • Once everything is green we'll do a final PR of that branch back into master.

Sound reasonable? Thanks @berkowski for doing this work and thanks @japaric for putting together trust. It looks like the integration so far has been very reasonable.

@posborne
Copy link
Member

Using current stable rust -- switch to a pinned version?

Down the road, it would be nice to test two versions at a minimum:

  • The oldest supported version (I think right now we have discussed 1.10 for this)
  • Stable

@posborne posborne changed the base branch from master to new-ci/master February 26, 2017 00:40
@posborne
Copy link
Member

Ok, I changed the base in preparation for doing ^^^. For now, I think I would be OK with merging as long as there are no other changes you want to make in the first pass.

From there, I think we create/assign issues for the individual platform problems and merge those in as needed (focus on either specific issues are people volunteer to get a specific platform working) and merge them into new-ci/master. Once that is green, we can merge back into master.

Thoughts @nix-rust/nix-maintainers @kamalmarhubi @fiveop ?

@fiveop
Copy link
Contributor

fiveop commented Feb 26, 2017

Yes, please! This will make working on this project so much more enjoyable (for me :)).

homu and others added 12 commits February 26, 2017 22:14
Add ppoll()

This will currently fail CI, as the necessary changes haven't hit libc yet. That is tracked in rust-lang/libc#537. This does build on my computer using the changes tracked on that PR, so I'd appreciate any visual review of this code as it should be "done".

I also wanted to get this submitted so hopefully it'd be in the queue for the 0.8 release.
Added:
  - arm-unknown-linux-gnueabi
  - arm-unknown-linux-musleabi

Removed:
  - powerpc64-unknown-linux-gnu (not suppported by nix)
  - mips64el-unknown-linux-gnu (not suppported by nix)
  - mipsel-unknown-linux-gnu (not suppported by nix)
Removed:
  - mips64-unknown-linux-gnu
  - mips64el-unknown-linux-gnu
  - arm-unknown-linux-musleabi
@berkowski
Copy link
Contributor Author

Once that API key gets changed over to nix-rust we're good to go. Could even merge first and swap the keys after if you want to do it when the source is owned by nix-rust

@posborne
Copy link
Member

Once that API key gets changed over to nix-rust we're good to go.

Sure, I'll go ahead and get this merged into the CI branch. I can update the API key using @nix-rust-bot which is what I have done in the past for docs and the like.

@posborne
Copy link
Member

NOTE: Manual merge to CI branch performed as not all tests are passing yet (as expected).

@posborne posborne merged commit 54c2d8d into nix-rust:new-ci/master Feb 26, 2017
homu added a commit that referenced this pull request Apr 15, 2017
Merge New CI Infrastructure Based on Trust/Cross Into Master

See discussion on #528.  This PR is to track the final decision of whether we are ready to merge the new CI infrastructure (and related bug fixes) back into master.  Initially, we know that the branch is not ready to merge (as there are still failing tests).

This PR acts as a single point of reference to get the current status of how close we are to merging things back into master.  A number of issues with "TRUST CI" in the title have been created for the work that appears to be required to get us to the point where this branch can be merged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants