Skip to content

Conversation

notoriaga
Copy link
Contributor

@notoriaga notoriaga commented Jan 26, 2021

For the most part this tries to be a straight port of what travis did, with a few exceptions -

  • CI is run on a per-language basis. Tags and pushes to master will trigger everything. You can also manually trigger any of the workflows from the Actions tab.
  • All release artifacts have a .zip extension (previously a mix of .zip and .tar.gz)

This also includes a few miscellaneous changes to get everything working -

  • Bumps serialport in the js library
  • Fixes test-javascript make recipe
  • Benchmark threshold tweaks

@notoriaga notoriaga requested a review from silverjam January 26, 2021 23:47
@notoriaga
Copy link
Contributor Author

@silverjam
Copy link
Contributor

@notoriaga I'm only seeing the Rust workflows running, is there something we need to do to enable the other workflows?

@notoriaga
Copy link
Contributor Author

@notoriaga I'm only seeing the Rust workflows running, is there something we need to do to enable the other workflows?

I was trying out using these as triggers for each language -

on:
  push:
    tags:
      - "*"
  pull_request:
    paths:
      - "$lang/**"

So the language specific workflows only run on prs that change that folder. I removed the travis badge from the Cargo.toml which is why it's building rust. This is obviously not how travis is doing it now, but figured it might be nice to save minutes. It runs everything on tags just to be sure. If we wanna run everything on all prs we just need to remove the paths: directive

@silverjam
Copy link
Contributor

@notoriaga I'm only seeing the Rust workflows running, is there something we need to do to enable the other workflows?

I was trying out using these as triggers for each language -

on:
  push:
    tags:
      - "*"
  pull_request:
    paths:
      - "$lang/**"

So the language specific workflows only run on prs that change that folder. I removed the travis badge from the Cargo.toml which is why it's building rust. This is obviously not how travis is doing it now, but figured it might be nice to save minutes. It runs everything on tags just to be sure. If we wanna run everything on all prs we just need to remove the paths: directive

Ok, this makes sense, I think it'd also make sense to have a way to force everything to build, (which would be nice for this PR in particular, so we can see everything running).

@silverjam
Copy link
Contributor

@notoriaga untagged myself for now, please re-tag me when there's new things to review

@notoriaga
Copy link
Contributor Author

@silverjam A few updates/questions

  • Removed the custom actions
  • Added workflow_dispatch as an event to all the workflows. This lets you trigger them manually. The option doesn't show until you have the workflows on the default branch for some reason. after you do though you can run the workflow on any branch
  • I changed all the artifacts to .zip to be consistent with how we've been doing it elsewhere. A little worried this might break something, not sure if we have any automation around these release

@silverjam
Copy link
Contributor

@silverjam A few updates/questions

* Removed the custom actions

* Added `workflow_dispatch` as an event to all the workflows. This lets you trigger them manually. The option doesn't show until you have the workflows on the default branch for some reason. after you do though you can run the workflow on any branch

👍

* I changed all the artifacts to `.zip` to be consistent with how we've been doing it elsewhere. A little worried this might break something, not sure if we have any automation around these release

I don't think this will break anything

@notoriaga notoriaga force-pushed the steve/github-actions branch 4 times, most recently from 37f2f22 to 9456d12 Compare March 15, 2021 19:44
@silverjam
Copy link
Contributor

@notoriaga is this ready for review again?

@notoriaga
Copy link
Contributor Author

notoriaga commented Mar 16, 2021

@silverjam Yeah should be ready for a look. Only thing I can't figure out is why the rust versions seem to run slower on gh actions compared to travis

Occasionally the benchmarks pass, so wondering if it has to do with gh actions running on shared instances. But I thought that was one of the reasons the benchmarks use docker, for more consistent resource availability across runs


- name: Upload coverage to codecov.io
run: |
bash <(curl -s https://codecov.io/bash) -s c/build || echo "Codecov did not collect coverage reports";
Copy link
Contributor

Choose a reason for hiding this comment

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

IIRC, the bash codecov usually doesnt set an exit status, so the || .. here is useless.

This upload isnt working; see https://github.com/swift-nav/libsbp/runs/2124966802#step:5:530

It seems codecov hasnt been working for a while in this repo, so perhaps that could be another task to get them all working in github actions after this PR.

Copy link
Contributor

Choose a reason for hiding this comment

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

It seems codecov<->github-integration isnt enabled for this repo. It is possible to send reports without that integration being enabled.

jobs:
coverage:
name: Test
runs-on: ubuntu-18.04
Copy link
Contributor

Choose a reason for hiding this comment

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

there are three jvms on https://github.com/actions/virtual-environments/blob/ubuntu18/20210309.1/images/linux/Ubuntu1804-README.md . It would be useful to print the JVM version that is being used for these tests. (Under Travis, the version was explicitly being set to 1.8.0)

@notoriaga notoriaga force-pushed the steve/github-actions branch from 26b6668 to 755c37c Compare March 18, 2021 16:49
Copy link
Contributor

@jayvdb jayvdb left a comment

Choose a reason for hiding this comment

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

Likely all workflows should run if test_data/** is modified

@@ -1,7 +1,5 @@
## Specification and Bindings for Swift Binary Protocol

[![Build status][1]][2]
Copy link
Contributor

Choose a reason for hiding this comment

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

So we can probably add this back later, but it would be for all languages, instead of just one global "CI" badge?

Copy link
Contributor

@jayvdb jayvdb left a comment

Choose a reason for hiding this comment

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

the important comments are resolved

Copy link
Contributor

@silverjam silverjam left a comment

Choose a reason for hiding this comment

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

@notoriaga let's fix-up the PR message to include some more details and please tag the summary with a Jira and then...

squirrel

@notoriaga notoriaga changed the title Initial github actions migration Migrate CI to github actions [INFRA-351] Mar 19, 2021
@notoriaga
Copy link
Contributor Author

please tag the summary with a Jira and then...

@silverjam do you mean by adding the ticket to the pr name?

@silverjam
Copy link
Contributor

please tag the summary with a Jira and then...

@silverjam do you mean by adding the ticket to the pr name?

Yes

@notoriaga notoriaga merged commit cf37e6b into master Mar 19, 2021
@notoriaga notoriaga deleted the steve/github-actions branch March 19, 2021 19:32
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.

3 participants