I 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.<p>Github documentation is a disaster. They leave out critical parts. They don't provide examples. Everything they write is terse, confusing, and incomplete.<p>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.<p>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.<p>If you go to the main page in your account for Github Packages, it says that all you have to do is this:<p>mvn deploy -Dregistry=<a href="https://maven.pkg.github.com/mycompany" rel="nofollow">https://maven.pkg.github.com/mycompany</a> -Dtoken=GH_TOKEN<p>That is just straight-out wrong. It does not work.<p>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.
I 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.
Github 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 ...<p>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:<p><a href="https://github.com/actions/setup-go" rel="nofollow">https://github.com/actions/setup-go</a>
<a href="https://github.com/actions/setup-node" rel="nofollow">https://github.com/actions/setup-node</a>
<a href="https://github.com/actions/setup-ruby" rel="nofollow">https://github.com/actions/setup-ruby</a><p>I much prefer CircleCI way
The GitHub Actions Runner has just been open sourced <a href="https://github.com/actions/runner" rel="nofollow">https://github.com/actions/runner</a>
Maybe 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".<p>There are a lot of cool examples demo'ing some nifty stuff, but I'd like to see a lot of <i>very</i> basic examples first. The sort of thing anyone could/would copy into their project and use, then later learn how to make it fancy.
What'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 ... ??
We 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.<p>The process was mostly just changing out a Jenkins file to the GitHub yml and sorting a few issues that cropped up.
I'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?<p>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.)
Only thing I don't like about GitHub Actions so far is the YAML structure. e.g.<p><pre><code> 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
</code></pre>
I much prefer Drone CI's YAML:<p><pre><code> kind: pipeline
name: default
steps:
- name: run tests
image: openjdk:8-jdk-slim # Docker images!
commands:
- ./gradlew test</code></pre>
While it’s not perfect, GitHub Actions was pretty straightforward to set up for an open source iOS project I help manage[0].<p>Most of the actions were pre-existing Makefile targets used during the bootstrap process anyway, so the YAML config was fairly lightweight.<p>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).<p>[0] <a href="https://github.com/birdrides/mockingbird" rel="nofollow">https://github.com/birdrides/mockingbird</a>
I 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.<p>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.
I 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.<p>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
Free? 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??
How 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.