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

[WIP] Add Github Actions CI #225

Merged
merged 1 commit into from
Dec 12, 2020
Merged

Conversation

CreepySkeleton
Copy link
Contributor

@CreepySkeleton CreepySkeleton commented Nov 29, 2020

Closes #223

Caching

Worst case CI time of cache-hit builds is about ~10 mins. Worst case CI time of cache-miss builds is about 17-20 mins. If I remove cache entirely, CI time is about ~15-17 minutes. I will continue experimenting with it tomorrow.

(Do keep in mind that GH actions has no "drop all cache" button.)

Tarpaulin & codecov reports

I've set it to trigger only on pushes but not on PRs. Works fine, CI time is about 7-9 minutes.

(You'll need to set up the CODECOV_TOKEN secret)

Windows & MacOs builds

Works remarkably well.

Features

I had been trying to get --all-features build to work, but eventually gave up and copy-pasted cargo commands from travis. I will continue experimenting on it tomorrow.

Beta & Nightly & MSRV

They are currently run only with default features check (copy-pasted from your travis setup). I will be investigating it further, but I suspect that some of your tests are kinda sorta broken (they don't even compile on beta or nightly or 1.37).

@CreepySkeleton
Copy link
Contributor Author

Clippy & Rustfmt

CI time is about 4-5 mins. Looks OK to me, but I think it can be reduced further if need be.

@CreepySkeleton
Copy link
Contributor Author

@CreepySkeleton
Copy link
Contributor Author

Example PR in my repo: CreepySkeleton#1

@iliekturtles
Copy link
Owner

Excellent! Thanks for the PR. I'll start reviewing later today or tomorrow.

@iliekturtles
Copy link
Owner

I haven't forgotten about this, just ended up having a really busy weekend. Is there anything still WIP or do you believe this is just about ready to go?

@iliekturtles iliekturtles merged commit 29e0262 into iliekturtles:master Dec 12, 2020
iliekturtles added a commit that referenced this pull request Dec 12, 2020
@iliekturtles
Copy link
Owner

Thanks again for submitting this PR! I made some changes (see details in my commit) and merged. Really excited to have the quicker CI times again.

@CreepySkeleton
Copy link
Contributor Author

Ugh, sorry for my unresponsiveness, had a busy week too. I am firm in my belief that it's a world-wide conspiracy run by nefarious coffee manufacturers: the busier the programmers are, the more coffee they consume. The doctors likely have their cut of the deal as well.

I think I've got the caching wrong: GH caching works differently from Travis'. The current script will keep pulling the old build artifacts until the next rustc version is released, and that may make the CI time to gradually regress. Hopefully, I'll look into this sometime next week, unless I'll be busy running my own anti-conspiracy conspiracy, overrunning the existing cartels and mandating that every programmer has a limitless supply of free coffee. Anime fans will pay for it, they'll pay for anything if you promise them that every programming company is obliged to host cosplay events from there on.

@iliekturtles
Copy link
Owner

Glad you caught that! I went to review what actions-rs does and it looks like they don't have a cache action yet. https://github.com/Swatinem/rust-cache is asking about the possibility of inclusion

@iliekturtles
Copy link
Owner

Also looks like when I push to a PR branch the actions get executed twice:

image

@CreepySkeleton
Copy link
Contributor Author

One is triggered by "push", the other by "PR" part. I'll see what we can do next week.

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.

Fix issues with uom CI process
2 participants