12 ms·
GitHub launches Actions, its workflow automation tool
- markovbot 8y agoLooks like https://github.com/features/actions https://github.com/features/actions is the GitHub page about this
- saagarjha 8y agoAnd documentation: https://developer.github.com/actions/ https://developer.github.com/actions/
- jhabdas 8y agoCoordinated much? _
- davidwparker 8y agoAnd here's the announcement blog post: https://blog.github.com/2018-10-16-future-of-software/ https://blog.github.com/2018-10-16-future-of-software/
- johnnycarcin 8y agoWith MSFT buying GitHub it'll be interesting how they spin this with their existing "Azure DevOps" pipeline(s) offering...
- colonelpopcorn 8y agoI imagine that GitHub's offering will be for open-source projects only.
- rvense 8y agoGithub are fine with closed source, you can put code on there under any license you wish AFAIK, and you can even hide it if you use a paid plan.
- thrower123 8y agoMicrosoft also has Flow, which can kind of do a lot of the same things as well, although more on the if-this-then-that type of model. It's actually pretty handy, since that seems to be the best way to do workflows that create issues into VSTS/AzureDevOps, or generate notifications out of it.
- mattferderer 8y agoThey also have Azure logic apps. I would be really curious to see how many of these, if any, share code or resources.
- JoyrexJ9 8y agoLogic Apps and Flow have the same tech and platform (shared code base). One requires an Azure subscription, the other doesn't so is aimed at Office/IT rather than devs and platform people
- talltimtom 8y agoMicrosoft is gigantic, they loose absolutely nothing by competing against themselves. People get caught up in the on-size-fits-all mentality. If you are a 20 man start-up it’s stupid to make 3 separate solutions that all compete. When you employ north of a hundred thousand people, it’s less of an issue.
- usrusr 8y agoFrom a certain size onwards not competing against yourself seems to be almost irresponsible. Just imagine the fate Intel without any internal competition to the Itanium, or without the Haifa team that insisted on pitting a refined P6 against netburst for mobile.
- jkchu 8y agoTotally agree with this. I've heard Amazon does similar things, like multiple teams competing with each other to accomplish similar goals. Can be very healthy for the company if managed correctly.
- reitanqild 8y agoGoogle seems to take this to an extreme with a number of messaging clients competing all the time.
- iamdave 8y agoThat particular example, I'm not even sure if it's an issue of teams competing for the king of the messaging hill. And it's of particular interest to me as a developer who works in the messaging space. It's not hard to get right, it's not difficult to get wrong either-everyone has their spin on messaging and that kind of choice is perfectly fine. We don't need one to rule them all, at least IMO. But goodness gracious Google just seems to have NO clue what they're doing with messaging. Which is frustrating because in the sliver of time they got it right, they got it right (that time when Hangouts was actually kind of great, it was well integrated, and looked like Google was actually trying to make it better? Member those days?) and then-as expected-they stripped the car for parts and we ended up with two communications (Duo and Allo) platforms that really should have been one feature-rich solution.
- nik736 8y agoI don't think they have to do anything here, GitHub is a different entity and afaik they want to keep it separated.
- geekjock 8y agoThis is very cool. I maintain a GitHub App (pullreminders.com) and I can see Actions helping with setting up additional custom alerts that users sometimes ask for.
- itayd 8y agoyou'll have to install the actions directly on your customer's repo iiuc. how will you be able to do this via your app?
- markovbot 8y agoThis UI is beautiful. I hope GitLab looks into implementing something similar. Their CI is already so powerful, it would be great to be able to have a UI to build pipelines.
- brodock 8y agoAs you may have guessed there is already an issue for that: https://gitlab.com/gitlab-org/gitlab-ce/issues/21485 https://gitlab.com/gitlab-org/gitlab-ce/issues/21485
- jhabdas 8y agoThink it'll be as slow using a cough interpreted language?
- peterkelly 8y agoWorkflows are typically I/O bound (where I/O == tasks that are executed). In most cases they tend to include little or no actual computation. So the raw computation speed is of little consequence, and an interpreted approach is fine. Implementations of workflow languages optimised for compute performance (e.g. using JIT compilation) do exist, but are not widely used outside of situations where the workflow combines both compute-intensive work and coordination of external tasks.
- sytse 8y agoThanks for you kind words about GitLab CI. What are the things that a visual editor is really great at? Getting a good overview of the relations between tasks? Seeing what secrets are available?
- securityfreak 8y agoI am a very visual person. The first step before I start writing a workflow in gitlab is, that I draw the whole pipeline on a whiteboard as a tree/graph. We discuss it with the team and only then I start writing the .gitlab-ci.yml file. Having something digital to substitute the whiteboard would be fantastic. Not just for designing the pipeline, but also for seeing the results of an actual run of the pipeline.
- Chico75 8y agoAt first I thought it was just another CI tool exclusive to github.com, but the fact that you can hook up more than just the commit push events makes it interesting for orchestrating a bunch of workflows around issues and pull requests. Also great to see that it supports both UI and code definition. The only big missing feature in my opinion is a shared library support, because it will soon be tedious to copy/paste the same generic docker build commands across repositories.
- tedmiston 8y agoWhat do you mean — isn't that exactly what a DockerBuildAction would provide? Or are you referring to sharing an entire workflow?
- sitepodmatt 8y agoI think it's referring to copying just part of the flow, where the terminal ends might not be connected, so per project/target you just wire up a repository to side A, and a deploy target to side B. Flows being a shareable description of part of the processing pipeline, where the testing/slack notification/approval workflow/building is standardized perhaps.. . (maybe I've been reading too much Akka streams)
- azhenley 8y agoIs this made to replace things like Travis and Jenkins? (I have very little experience with them.) The GUI looks very sleek, I'll definitely be checking this out to see how to integrate it into my SE course.
- Chico75 8y agoFrom what was shown, it could definitely replace some of those use-cases.
- tedmiston 8y agoYes, and/or make the power of existing CI systems more accessible. And also to create a shared library of actions. Perhaps they will eventually go for creating a common standard for workflow actions across platforms.
- devcpp 8y agoMore like replace Atlassian Bamboo. I've had traumatic experiences with sleek CIs. To me it's like the Scratch "programming language". Good for beginners, and then you find yourself wanting to copy/paste your workflow or make any sort of involved change and having to rewrite everything in a Jenkinsfile. Now, I'd like to be wrong. But I doubt a UI can get close to plain text for this kind of thing, it's just very difficult for software to translate boxes into code. Until then, there's a reason our tooling is text-based to this day.
- zenlikethat 8y agoIt will apparently also be configurable using static files written in HCL (Terraform syntax).
- ilaksh 8y agoI think the problem is it can't replace Travis etc. if you are trying to use it for open source projects, since it only works for private repos.
- preya2k 8y ago
- saagarjha 8y agoHow will pricing work with something like this? Are actions run on GitHub's servers, or can they only call out to third-party services?
- rcfox 8y agoLooking at the documentation, I got the impression that you give them Dockerfiles that they will run on GitHub servers for up to an hour at a time. Seems like this would be pretty easy to abuse, and I was able to sign up with my free account. We'll have to see how long this lasts...
- ilaksh 8y agoIt only works on private repos.
- tedmiston 8y agoI wonder if actions on public / private repos will run in public / private containers (and be stored in public / private registries) by default? The closest that I found is [1]: > Actions are defined in a Docker container. Actions run in an environment where they have access to the code in your repository, variables you define, and secrets you make available to the action. I get the impression from that and [2] that it's only private containers on GitHub servers for now. Another interesting observation from the docs [3] currently: > You can only create workflows in private repositories. I imagine that's a temporary constraint for now? Edit: Found more info on the runtime environment [4]. [1]: https://help.github.com/articles/about-github-actions/ https://help.github.com/articles/about-github-actions/ [2]: https://help.github.com/articles/creating-a-workflow-with-github-actions/ https://help.github.com/articles/creating-a-workflow-with-gi... [3]: https://developer.github.com/actions/creating-workflows/creating-a-new-workflow/ https://developer.github.com/actions/creating-workflows/crea... [4]: https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/ https://developer.github.com/actions/creating-github-actions...
- donatj 8y agoI'm very hopeful this can replace at least some of our hooks. We've for a fairly a automated process using GitHub labels and it would be great to be able to move some of those off our hook server.
- toomuchtodo 8y agoIf you don't mind me asking, what hook server are you using currently you'd move off of?
- donatj 8y agoIt's a pretty minimal one I developed for personal projects we ended up using internally. https://github.com/donatj/hookah https://github.com/donatj/hookah
- deleted 8y ago[deleted]
- bovermyer 8y agoNOW GitHub and GitLab are direct competitors.
- spankalee 8y agoI hope this leads very popular actions being added to GitHub's UI. I'll probably first end up using this for better issue management and triaging: - adding a default set of labels to new issues. - choosing default reviewers - synchronizing labels and GitHub project columns But I really think those things should be built-in. Maybe actions can in part be product research for them. Also, I'd love to see a Node.js serverless function version of this.
- deweller 8y agoI like that they are using HashiCorp configuration language (1) for the configuration. I have found HCL to be more human-readable than JSON and YAML. But it is plenty strict for use cases like this. 1. https://github.com/hashicorp/hcl https://github.com/hashicorp/hcl
- deleted 8y ago[deleted]
- jhabdas 8y agoNice. Brave stomps the whole article out and leaves just the nav and a small graphic that says "AdChoices". Looks like a feature to me.
- crooked-v 8y agoThis looks like a complete replacement for Bitbucket Pipelines (and a straight up better one), which makes me happy.
- blt 8y agoMeanwhile, forked repositories still aren't searchable.
- gigel82 8y agoWait, how does this work? Who pays for all that compute time in the cloud? What's the catch?
- canadianwriter 8y agoI have a feeling Microsoft does. They've hosted Github pages for free for quite some time... though this may use far more resources.
- wulfmann 8y agoYes, computing costs far outweigh hosting costs.
- dragonwriter 8y agoPresumably, like every other GitHub feature, the people paying for GitHub pay for it, free users get it as part of the ecosystem building promotion that the free tier provides to bring in paying (not purely public/OSS, team features) customers, with the assumption that the surplus on the paid accounts will, over the log term if not immediately, cover the cost of the free use. Or they’ll make it a separately charged feature once they evaluate demand and usage in the beta, but AFAIK that would be new for GitHub.
- jordiee 8y agoIt mentions actions need to be private repos. So if I not mistaken free uses will not be able to use it.
- bnVi 8y agoWhere exactly does what say actions need to be in private repos? I'm not finding it. Edit: Seems like workflows can only be created in private repos [1], > You can only create workflows in private repositories. but actions can be public [2]. > To share GitHub Actions with the GitHub community, your repository must be public. [1] https://developer.github.com/actions/creating-workflows/creating-a-new-workflow/ https://developer.github.com/actions/creating-workflows/crea... [2] https://developer.github.com/actions/creating-github-actions/creating-a-new-action/ https://developer.github.com/actions/creating-github-actions...
- DanFeldman 8y agoWow, this could be really useful for my team. We've built a ton of customized workflows on top of github. We use a modified git-flow process, and have bespoke solutions for automatically tagging branches when branches w/ name "hotfix" get into master, when long-living releases get merged, tons of logic for getting commits on a "release-*" branch into dev and other branches. We ended up building a custom github worker that listens to all of this, but it's opaque and our Bus factor is 1 for that tool. Putting it on Github where anyone can change the rules and see them cleanly is fantastic!
- sunsetMurk 8y agowhat's 'Bus factor 1' ?
- voltagex_ 8y agoThe "bus factor" is a way of saying "how many devs could we lose on this project and still have a working knowledge of it?" https://en.wikipedia.org/wiki/Bus_factor https://en.wikipedia.org/wiki/Bus_factor
- Cogito 8y agoA popular alternative I've heard here a few times is the "lottery factor". How many devs could win the lottery and retire to a desert island while we still retain working knowledge of it.
- voltagex_ 8y agoThat's much better - thanks.
- avar 8y agoThat's a worse analogy. The entire point of "bus factor" is that it assumes the person is dead afterwards, so there's no way to recover the knowledge and this eventuality needs to be planned for beforehand. Whereas even someone who won the lottery will take a $100k/hr consulting gig, or might take pity on his ex-coworkers and explain his choices in a 1 hour phonecall while sipping margaritas on the beach.
- agumonkey 8y agodistributed dataflow ?
- Illniyar 8y ago“Imagine an infinitely more flexible version of shortcut, hosted on GitHub and designed to allow anyone to create an action inside a container to augment and connect their workflow" Err... so like code? If he phrases it like that, does that mean that the target audience isnt developers? I mean why else go with such an analogy?
- peterkelly 8y agoWorkflow languages are programming languages. I'd be really interested to know if 1) there's a textual representation of the visual workflow design that you can easily export/import, and 2) the syntax and semantics of the language. I've seen a _lot_ of visual workflow editors which have a tendency towards limited expressiveness; there seems to be a major disconnect between the worlds of workflow authoring and programming. I noticed that they provide the ability to specify a Dockerfile which contains the necessary facilities to run arbitrary code. But I can't help but think there has to be a middle ground between the two. I've written about this in the past, arguing that applying concepts from traditional programming language theory (in particular functional programming) to the design of workflow languages can be fruitful. https://www.pmkelly.net/publications/wage2008.pdf https://www.pmkelly.net/publications/wage2008.pdf https://www.pmkelly.net/publications/thesis.pdf https://www.pmkelly.net/publications/thesis.pdf
- gbaygon 8y agoThere is a mention in the features page* about it: action "Deploy to Production" { needs = "Provision Database" uses = "actions/aws/ec2" runs = "aws deploy --prod" } *see "Configure as code" in https://github.com/features/actions https://github.com/features/actions
- peterkelly 8y agoIt's common among workflow languages to represent everything as a graph. What I think is more appropriate is an expression-like approach, where the relationships between the different actions are implicit in the syntax. For example, if you have a graph like the following: node A node B node C node D edge B -> A edge C -> A edge D -> B edge D -> C you could write that as an expression like this: A (B D) (C D) In the action example, the "needs" field is a dependency on the task, or in other words a subexpression. If there are multiple independent expressions that all depend on that, you could use something like let/letrec to assign the result of "Provision Database" to a variable, and then reference that from other expressions. Basically, the action syntax they have is like writing an abstract syntax tree where every node explicitly lists its dependencies. An expression is a much more compact form and the subexpressions are implicit in the AST produced by the parser; this is the approach used by most programming languages. But for reasons I still don't fully understand, workflow languages (which I consider to be a specific class of programming language) don't seem to adopt this more compact representation.
- piyush_soni 8y agoWouldn't it make more sense for Microsoft to merge GitHub with their TFS workflow that already has build / test etc. integration to some extent (along with hosting code)? I don't understand this development.
- ilaksh 8y agoNo, because if they do that then up to five million developers may leave.
- mohammedbin 8y agoBut five ~~million~~ already left when they announced the acquisition
- tedmiston 8y agoHere's the official GitHub Actions collection. https://github.com/actions https://github.com/actions And for a concrete example, the Docker Action. https://github.com/actions/docker https://github.com/actions/docker
- ilaksh 8y agoSome of them have Dockerfiles but some don't. For the ones without Dockerfiles, exactly what environment are the commands run in?
- Ajedi32 8y agoAre you sure they don't have Dockerfiles? It looks like the Dockerfiles don't have to be in the root directory. You can have a repository with multiple Dockerfiles stored in subdirectories, which results in the repository hosting multiple actions.
- agentPrefect 8y agoIs the "extend" portion of the new Microsoft strategy commencing...
- Azerb 8y agoGitHub sale hasn't even closed. This is GitHub being GitHub.
- nicodjimenez 8y agoFinally, I can hope to cancel my CircleCI account soon.
- perlgeek 8y agoThis looks very promising, and I'm eager to try it out for some hobby projects. One thing I haven't found skimming the docs is a manual approval gate, which would be very useful for projects that don't have full automated test coverage (so, nearly all of them) before a production deployment.
- humanrebar 8y agoI would just create a github release or a particular style of git tag.
- perlgeek 8y ago... and then use a second, different automation to deploy that into production? That seems a little backwards for a small web app.
- foolip 8y agoThe creation of a tag can presumably trigger actions.
- humanrebar 8y agoI use different workflows for commit verification and release automation, yes. Some things are actually simpler that way.
- manigandham 8y agoGreat news. Also the right way to do CI/CD with each step being a separately configured container with a persistent workspace throughout. Makes it very fast and easy to chain together steps while using small, focused, and updated images. There's only a few providers that seem to get this right so it's nice to see included in github. I was just talking to the Azure DevOps people about this kind of functionality so it seems like GH is and will continue to be run independently of MS/Azure.
- galaxyLogic 8y agoIsn't this a bit like Ant or Gradle specialized for version-control perhaps? What's wrong with using Ant or Gradle?
- vorg 8y ago> What's wrong with using Ant XML > or Gradle? Apache Groovy
- yosito 8y agoI could spend years automating my workflows and never actually providing value in the form of deliverables haha
- t0astbread 8y agobig mood
- gaahrdner 8y agoThis looks great, reminds me of a concourse.ci pipeline, but prettier.
- t0astbread 8y agoI mean yeah, this is pretty cool but shouldn't we be worried about GitHub taking over our whole workflow?
- onion2k 8y agoWe should be worried about locking our workflow to a specific provider. The fact a provider makes it easier or provides tools in itself isn't lock-in. Even then we shouldn't be particularly worried. Vendor lock-in is an unusual problem; deciding to change vendor is rare and if there's a good reason to do it then it's worth spending resources. The only time it's a real problem is when you absolutely have to change and you don't have the resources to do the necessary work.
- Entalpi 8y agoIf there ever was an native article it is this one.
- why_only_15 8y agoDo you mean naive?
- Entalpi 8y agoNo, native as in native advertising. As in they most likely got paid to write it. https://en.wikipedia.org/wiki/Native_advertising https://en.wikipedia.org/wiki/Native_advertising
- morpheuskafka 8y agoInteresting that GitHub is continuing to still actively develop independent features after the acquisition. I almost started to say that this seemed like a pushback against Microsoft’s newly-rebranded Azure DevOps before I even remembered...
- setquk 8y agoNow our workflow can be insonsistent or down too for several hours a month.
- acejam 8y agoIf you're as eager as I am to check this out, try this: 1. Go here as a logged in user: https://github.com/actions/docker/blob/master/.github/main.workflow 2. Click Edit on the file (top right corner, pencil icon) 3. Edit existing workflow, or click "Create a new workflow".
- hardwaresofton 8y agoThe new UI that Github implemented for it's actions is really slick! As far as implementation I'm starting to wonder if anyone actually uses BPMN[0]...It might be nice if we had a standardizable way to do these orchestrations, and I thought BPMN was it. [0]: https://www.bpmnquickguide.com/view-bpmn-quick-guide https://www.bpmnquickguide.com/view-bpmn-quick-guide
- panda888888 8y agoRIP Puppet. If this takes off, Puppet's death spiral will be further cemented.