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

Support GA of GitHub Actions #84

Merged
merged 24 commits into from
Feb 18, 2020
Merged

Support GA of GitHub Actions #84

merged 24 commits into from
Feb 18, 2020

Conversation

cplee
Copy link
Contributor

@cplee cplee commented Feb 18, 2020

Closes #74

support the new v2 of GitHub Actions (e.g. yaml files in .github/workflows/). This has been a much larger effort than i first thought 😰

Here's a summary of features:

  • Ability to read workflow files from .github/workflows
  • Ability to run commands via run: syntax
  • Ability to run commands in container via jobs.<id>.container
  • Ability to use docker urls
  • Ability to use github repo actions of type node12
  • Ability to use github repo actions of type docker
  • Ability to use local actions (e.g. use: ./.github/...)
  • Support for logging commands (e.g. ::set-outputs::..)
  • Support for matrix strategies
  • Expressions (e.g. run: echo ${{secret.foo}}

@cplee cplee marked this pull request as ready for review February 18, 2020 07:51
@cplee cplee merged commit 1990e5b into master Feb 18, 2020
@cplee cplee deleted the act-2 branch February 18, 2020 07:53
@marcosnils
Copy link

Hey @cplee. Congrats on landing this PR. I've been trying to find the time to work in a local way to run actions for a specific repo since I'm a big fan of act which I used in actions v1.

Seems like you did an amazing work and effort to implements all this features. The way what I thought about implementing this local runner is to actually use the open source runner (https://github.com/actions/runner) that already has all the logic on how to run and process the workflow yaml files.
I'd love to know if you thought about that approach and if so, the main reasons why you chose to implement it yourself. If you believe we can use the open source runner instead, I already did some work around that that I'd like to share.

@cplee
Copy link
Contributor Author

cplee commented Feb 20, 2020

@marcosnils I did look at it as my first approach. Ran it locally and captured the API traffic back to GitHub from the runner. The API is very chatty, verbose....and undocumented. Lots of references to VSTS in the API payloads 🤯

Looked much more difficult to simulate the API between the runner and GH so I went the direction I did. Would love to hear more about your learnings and I'm happy to reconsider!

@marcosnils
Copy link

I haven't checked in detail, but I only saw that the listener can be invoked in something that's called local run (https://github.com/actions/runner/blob/6c70d53eead402ba5d53676d6ed649a04e219c9b/src/Misc/layoutroot/run.sh#L23-L27). I was hoping that option could actually help running stuff locally without having to interact with the VSTS or GH API. Seems like you have better understanding about the runner internals and it might be a dead end?

@cplee
Copy link
Contributor Author

cplee commented Feb 20, 2020

Looks like it has potential...that's the right idea. Can't find any details on how that works though... 🤔

@marcosnils
Copy link

Maybe @TingluoHuang can help us here?

@cplee
Copy link
Contributor Author

cplee commented Feb 20, 2020

Moving conversation above over to issue #88

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.

Support Actions v2
2 participants