Skip to content

[WIP] Add Github Actions CI#225

Merged
iliekturtles merged 1 commit into
iliekturtles:masterfrom
CreepySkeleton:master
Dec 12, 2020
Merged

[WIP] Add Github Actions CI#225
iliekturtles merged 1 commit into
iliekturtles:masterfrom
CreepySkeleton:master

Conversation

@CreepySkeleton

@CreepySkeleton CreepySkeleton commented Nov 29, 2020

Copy link
Copy Markdown
Contributor

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
Copy Markdown
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
Copy Markdown
Contributor Author

@CreepySkeleton

Copy link
Copy Markdown
Contributor Author

Example PR in my repo: CreepySkeleton#1

@iliekturtles

Copy link
Copy Markdown
Owner

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

@iliekturtles

Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Owner

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

image

@CreepySkeleton

Copy link
Copy Markdown
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