12 ms·
GitHub Actions is my new favorite free programming tool [video]
- itcrowd 7y agoWhat's up with so many YouTube video's (including this one) having ALL CAPS titles?! It makes me not want to watch them, although it may be different for the general public for some reason ... ??
- docuru 7y agoClick bait!
- sharperguy 7y agoI've heard youtubers claim that YouTube's algorithms make it impossible to get views without using clickbaity titles. E.g: [1] https://www.youtube.com/watch?v=7i1IOO6g0vc https://www.youtube.com/watch?v=7i1IOO6g0vc
- NikolaeVarius 7y agoThis has been true of all media since the dawn of media. Youtube has nothing to do with it
- kej 7y agoIt's because YOU WILL NOTICE THIS ONE in a list of other normal text
- wescarpenter 7y agoI GUESS WE'LL JUST HAVE TO WAIT UNTIL EVERY ONE LOOKS LIKE THIS so then this one WILL STAND OUT AGAIN?
- gpu_explorer 7y agoBut it doesn't work in Hebrew.
- pm90 7y agoI would hesitate to build on anything that relies on GitHub native tooling. GitHub support is absolutely the worst. Their tools fail in weird ways at times, and without support you will be stuck. For personal/non production apps, fine. But beware of using it as a core part of your infrastructure.
- penagwin 7y agoThanks for the warning, are there any good tools that integrate with pull request checks that can be self hosted? We self host nearly everything at work except for github. (And it's VERY difficult for me to get anything that costs money approved regardless of price)
- prophetjohn 7y agoIt costs money, but for other readers, I've been using Buildkite[0] at two different companies across ~4 years now and it's great. It's _mostly_ self-hosted in that jobs run on your own hardware and Buildkite itself is only the job queue that your self-hosted agents pull work from. They also provide an elastic CI stack[1] so you can have auto-scaling workers running on AWS You still own enough of it that if the service is down, you can just execute the scripts manually to build, test and deploy [0] https://buildkite.com https://buildkite.com [1] https://github.com/buildkite/elastic-ci-stack-for-aws https://github.com/buildkite/elastic-ci-stack-for-aws
- wilsonrocks 7y agoGitlab let's you do an awful lot and can be self hosted.
- bravura 7y agoAnd it's VERY difficult for me to get anything that costs money approved regardless of price For me, this is a big red flag.
- penagwin 7y agoI should probably emphasize that it's difficult for me to get new things approved, but if we NEED it then money is not a problem. The response I get is we don't _NEED_ a CI/CD (and haven't had one for years), so they would rather I find a solution that can run on our hardware for free. I'll add that I enjoy my work environment and they treat me very well, I'm young and I'm known to "like shiny new things". I also have to work on how I pitch why we need certain things, again I'm pretty young so I'm not well practiced in that just yet.
- NieDzejkob 7y ago@mods As far as I understand, this should be tagged as [video].
- dang 7y agoAdded. Thanks!
- louib 7y agoI had to setup CI for a GitHub open source project recently, and decided to give GitHub Actions a try. I have to say it's pretty nice to have the CI directly handled by GH (GitLab has been doing it for years, I know...). I hope it's gonna help some open source projects to easily add CI validations to their PR workflow. That being said, there was only Ubuntu images for the Linux builds, and I'm not aware of a way to run custom containers at the moment.
- reilly3000 7y agoMost of the Actions are actually custom containers. So to run your own code you can just make an action, which isn't that complex.
- ethomson 7y agoPM for GitHub Actions here. I wouldn't suggest that you build an action to run a build within a container. We offer container support for workflow runs which should be suitable for this. (Either by specifying the `jobs.<job-id>.container` or by using `docker run ...`) Actions themselves are meant to support the workflow and distill a set of complex steps into something that can be done in a single workflow command. (For example, download and set up a new version of a Java JDK.) They're meant to be used as steps in many peoples workflows, instead of executing a single workflow. The actions themselves can be built as either a container, which is self-contained, or as JavaScript. I often recommend the latter, since that will work cross platform (containers only work for people who are using workflows running on Linux).
- ethomson 7y agoIndeed, GitHub Actions only has ubuntu virtual machines, but you can run a custom container with the `jobs.<job-id>.container` specifier.
- jillesvangurp 7y agoActually it' s possible to do react native builds on OS X as well: https://medium.com/@jonnyburger/first-look-using-github-actions-for-building-ios-and-android-apps-4749609b96f0 https://medium.com/@jonnyburger/first-look-using-github-acti... We've been experimenting with this and are using this to add some CI to our react native frontend.
- ccleve 7y agoI have spent the last two days fighting with these new Github tools. I've been trying to do a simple Hello-World Maven app, built on Github Actions and deployed to Github Packages. It does not work. Github documentation is a disaster. They leave out critical parts. They don't provide examples. Everything they write is terse, confusing, and incomplete. They have short little articles on how to do things, and for each sub-task they have a link to docs somewhere else. This would be fine, except the links don't point to anything useful. To give an example: they say you can use the Github API to talk to Github Packages, but the link goes to their generic GraphQL documentation. They don't point to any reference material on the actual calls to the packages service. If it exists, I can't find it. If you go to the main page in your account for Github Packages, it says that all you have to do is this: mvn deploy -Dregistry=https://maven.pkg.github.com/mycompany https://maven.pkg.github.com/mycompany -Dtoken=GH_TOKEN That is just straight-out wrong. It does not work. Seriously, Github, you need to fire your documentation team and hire some people who know how to write. Perhaps you should hire people who have actually used your tools to write the docs. Or just provide some freakin' working examples.
- ComputerGuru 7y agoI am with you on this. It seems to be a new trend: “show users how to do a hello world” which was disregarded in the past... but somehow that turned into “instead of providing real documentation” rather than “in addition to.” It’s not just GitHub. There’s a language I (and the rest of HN) love that has adopted “story format” for documentation but is missing real, hard technical documentation apart from method-level codedocs. It’s nice for building momentum but it leaves you unable to find a central location with an architectural documentation of the system.
- ben_jones 7y agoSomeone please tell the Google Cloud Platform teams this. So many hello world examples which reek of, "I was told to write documentation but I really hate writing documentation". I mean this in good faith, I think writing documentation for a product you don't actually use is a miserable experience and I hope they can find a better balance... Writing documentation also seems to be a task you kick out to your junior developers that you'd rather not give more critical assignments to, which is backwards as can be.
- kureikain 7y agoGithub actions is nice but I think they go to wrong direction. The way they work is you are given an image then you have to use a thing call Github action, which basically just to extract out into YAML to define a certain steps for install any dependencies, execute shell script ... I don't know why they didn't allow us to use any docker image we want so we don't have to waste time to use actions to install dependencies...Eg, if your app depend on both Go, Ruby, Node at build time you will need: https://github.com/actions/setup-go https://github.com/actions/setup-go https://github.com/actions/setup-node https://github.com/actions/setup-node https://github.com/actions/setup-ruby https://github.com/actions/setup-ruby I much prefer CircleCI way
- kwhat4 7y ago> I don't know why they didn't allow us to use any docker image we want Can you imagine allowing anyone on the internet to run an arbitrary container on your server for free?
- pushpop 7y agoMany services already do allow this; including the aforementioned CircleCI
- jrockway 7y agoThat is what every CI service in the world is. Docker doesn't intrinsically give you any privileges a shell script doesn't, but there is flexibility to really lock things down (like with gVisor). Of course, a lot of people run the Docker daemon in such a way as to give containers root access, which isn't ideal in a shared environment. There is no mandate to do such a thing, however. I built an old-style Docker container (i.e., one that runs code like "apt-get install foo") on Github Actions successfully, so I assume Docker works fine. I haven't tried getting root on a build worker, but I imagine they mitigate that in some way. (Perhaps by having a pool of VMs and blowing it up after your build is done.) I think what the OP is talking about is CI systems whose pipelines are declared by a series of "run this command in this container" instructions. Github Actions doesn't work that way, but you can still run containers.
- 7y ago
- pavlov 7y agoI'd be hesitant to build on GitHub tools that have overlap with anything Microsoft provides. When something similar is introduced to Azure, why keep the subsidiary's internal competition around? This happened already with VS Code vs. Github's Atom editor whose development has ceased earlier this year. (Not that I ever was a huge fan of Atom, but its discontinuation is a direct result of the Microsoft acquisition.)
- thinkingkong 7y agoGithub actions is most definitely using Azure build pipelines behind the scenes. Microsoft is smart about boosting revenue figures. Id be shocked if this wasnt the case.
- prepend 7y agoI am afraid that Microsoft will kill GitHub stuff in favor of azure stuff, but I think the risk is low because it seems like GitHub’s whole purchase was for goodwill. If I had to bet, I think “azure devops” will go away and GitHub will eat it. Currently the Actions free tier is cheaper than using azure build pipelines which is kind of weird, but nice for GitHub users. I think it’s because GitHub is a limited subset (ie, doesn’t need to support Windows IaaS build types) so it may be cheaper to run.
- m_ke 7y agoI'm convinced their goal is to leverage GitHub to win the cloud wars and that they'll keep porting all of their Azure products onto it until GitHub is the cloud provider. I bet we'll see a click to deploy button on github for most common web frameworks soon. Having your git history hooked up to your deployed infrastructure will allow them to do some amazing things around live debugging. (similar to what google is doing with cloud source repositories https://cloud.google.com/debugger/ https://cloud.google.com/debugger/).
- manojlds 7y agoIt's not just a direct result. VSCode was already on way to make Atom defunct and the acquisition closed it earlier. Also, GitHub Actions is based on Azure Pipelines already.
- keyP 7y agoThe GitHub Actions Runner has just been open sourced https://github.com/actions/runner https://github.com/actions/runner
- ioquatix 7y agoThat's awesome, thanks for the link. I made an AUR package: https://aur.archlinux.org/packages/github-actions/ https://aur.archlinux.org/packages/github-actions/
- k__ 7y agoTried it out a week ago, but the docs weren't too helpful and the build templates I found were buggy.
- hanniabu 7y agoThat seems to br the general sentiment in this thread. I hope somebody of power within Github is reading this, or someone that can pass the info along to such a person.
- kenver 7y agoWe managed to move our iOS CI over to this in a couple of days. Produces multiple independent builds based on branch names, signed with an enterprise profile for testing and QA. These are uploaded and shared via ms app center. It also produces our App Store releases signed and uploaded to the App Store via a regular developer account. The process was mostly just changing out a Jenkins file to the GitHub yml and sorting a few issues that cropped up.
- amdelamar 7y agoOnly thing I don't like about GitHub Actions so far is the YAML structure. e.g. name: master-pull-request on: pull_request: branches: - master jobs: test: name: run tests runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v1 - name: Run gradle test run: | ./gradlew test I much prefer Drone CI's YAML: kind: pipeline name: default steps: - name: run tests image: openjdk:8-jdk-slim # Docker images! commands: - ./gradlew test
- edaemon 7y agoGitHub's format is like Drone's "multiple pipelines" feature in a single document instead of separate ones. Drone uses multiple documents that each define a different set of steps while GitHub does that in a single document with separate jobs. It's just an issue of preference, I suppose, but I prefer GitHub's way of doing things. I find it easier to read and understand.
- karaokeyoga 7y agoOutstanding video ... beginner-friendly, great signal-to-noise ratio, succinct, excellent visuals and a clear voice.
- kmf 7y agohey, thank you so much! I’m super proud of it, been trying to improve every aspect of my vids from scripting/storyboarding, recording, editing, etc - I think it all really came together well here!
- ShakataGaNai 7y agoMaybe it's changed in the last month or two, but last time I looked at GitHub actions I couldn't find a single example of "Build docker container and push to GitHub Packages". There are a lot of cool examples demo'ing some nifty stuff, but I'd like to see a lot of very basic examples first. The sort of thing anyone could/would copy into their project and use, then later learn how to make it fancy.
- pyr0hu 7y agoI really liked GitHub's pipeline description file, but my issue with GH Actions was that the pipeline was slow. The same job running on the cheapest/slowest free-tier available Semaphore runner took half the time than on GitHub. That's with caching, parallelization on GH too. Otherwise it could be a good product, and I'd really like if I could manage the repos and the CI from one unified place
- engineeroncall 7y agoWhile it’s not perfect, GitHub Actions was pretty straightforward to set up for an open source iOS project I help manage[0]. Most of the actions were pre-existing Makefile targets used during the bootstrap process anyway, so the YAML config was fairly lightweight. Echoing the other comments in the thread, the docs did feel a bit sparse when I last poked around (this was back when Actions was still in beta). [0] https://github.com/birdrides/mockingbird https://github.com/birdrides/mockingbird
- darkwater 7y agoFree? We are a paying Org and pushed a few test docker images (built via Actions) to the new Packages (aka GH docker registry) and you have just 2GB really free (well, included in your plan). Then you have to pay extra. We have like 80 accounts, already paying a lot of $$$ to GH and they give you 10000 minutes of free Actions - which is cool - but ONLY 2 freaking gigabytes of storage for free??
- ifthenelseend 7y agoNo VCS post without paid gitlab commentators... Propaganda department is working very hard!!
- vageli 7y agoHow do people test GHA before pushing to github? I encountered a tool or two to assist but they require the action to be described with HCL not the newer YAML syntax.