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

Use Azure Pipelines or GitHub Actions for CI #959

Closed
na-- opened this issue Mar 14, 2019 · 7 comments
Closed

Use Azure Pipelines or GitHub Actions for CI #959

na-- opened this issue Mar 14, 2019 · 7 comments
Labels
ci evaluation needed proposal needs to be validated or tested before fully implementing it in k6 high prio tests
Milestone

Comments

@na--
Copy link
Member

na-- commented Mar 14, 2019

We're having occasional resource constraint issues with CircleCI, and AppVeyor (for windows tests and builds) has been consistently terrible for a while... so it seems like it's worth investigating https://azure.microsoft.com/en-us/services/devops/pipelines/

It could give us a single place for tests and builds on Linux, Windows, and macOS (!). They also offer "10 free parallel jobs with unlimited build minutes for all open source projects", which seems much better than what we're currently getting with CircleCI. They also seem to be better integrated with GitHub via this.

@na-- na-- added tests ci evaluation needed proposal needs to be validated or tested before fully implementing it in k6 high prio labels Mar 14, 2019
@na--
Copy link
Member Author

na-- commented Aug 27, 2019

This recent announcement adds GitHub Actions as a possible alternative: https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/ (they're probably using the same machines anyway, given the fact that MS owns GitHub...)

@na-- na-- added this to the v0.26.0 milestone Aug 27, 2019
@na-- na-- changed the title Use Azure Pipelines for CI Use Azure Pipelines or GitHub Actions for CI Sep 4, 2019
@na-- na-- removed the high prio label Sep 25, 2019
@na-- na-- modified the milestones: v0.26.0, v0.27.0 Oct 10, 2019
@na--
Copy link
Member Author

na-- commented Oct 15, 2019

Given the issues we've had with the hosted golangci-lint service recently (#1197, #1204), we should probably transition to running it as a task in our new CI, whichever it ends up being.

@na--
Copy link
Member Author

na-- commented Nov 15, 2019

Given that we'd be completely overhauling the CI, we might as well fix as many things that are currently wrong with the CI processes as possible. The latest ones are documented in #1247, but a lot of the issues that are linked to this one (listed above) would probably qualify... Basically, I think that instead of faithfully and exactly translating what currently exists to the new CI service, we should pick the good parts of the current setup, but rewrite the bad ones in a better way...

@na--
Copy link
Member Author

na-- commented May 25, 2020

Something like https://github.com/actions/stale seems necessary when we move to github actions

@imiric
Copy link
Contributor

imiric commented Jul 31, 2020

I've been trying to replicate the current CircleCI setup in GH Actions for the last couple of days, and it's about 80% there, but there are some weird errors.

What works:

  • Dependency check and test steps on Linux for current and previous Go versions. I needed to skip one test because of some strange DNS issues (server misbehaving?), but other than that they've been very stable, haven't seen any flakiness that plagued CircleCI builds. They run in comparable time, same 2-core VM. So overall, not bad. 👍
  • Docker building and publishing works fine.

What kind of works:

  • golangci-lint. I tried a few variations, first with blackboard-innersource/gh-action-golangci-lint and then with the official action, but they all had some issues. The current golangci/golangci-lint-action@v2 one picks up old linter issues, and the current --new-from-rev origin/master setting is supposed to work with only-new-issues: true (see '--new-from-rev=master' flag not taking effect golangci/golangci-lint-action#30), but it's unclear what it considers "new" and there doesn't seem to be a way to specify it. I tried fixing and silencing some errors, but it always picks up new issues when I fix those, so it's like playing whackamole, and I gave up 😅
    We could always not use any actions and just run it manually ourselves, but it kind of goes against the spirit of GH Actions I guess, and we would lose the inline annotations, which are quite handy.

What doesn't work yet:

  • macOS tests. There are some strange test failures, and I didn't look too deeply into it. This shouldn't be a blocker for switching, but it would be nice to have. 🙂

What I haven't tested yet:

  • Release publishing and integrating build-release.sh, but we can leave that for later and could switch without it for the day-to-day benefits.
  • Windows builds.

I'm not sure if I'll focus more on this next week, but maybe someone can pick up from my WIP branch, though let me know and I'll clean it up first. 😄

@mstoykov
Copy link
Contributor

Can we close this? and open issues with the specific problems?

@na--
Copy link
Member Author

na-- commented Oct 21, 2020

Yeah, closing this, we can open issues for individual problems

@na-- na-- closed this as completed Oct 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci evaluation needed proposal needs to be validated or tested before fully implementing it in k6 high prio tests
Projects
None yet
Development

No branches or pull requests

3 participants