Let’s talk about GitHub Actions 💬 ✨ #181437
Replies: 47 comments 61 replies
-
I am very excited about this! |
Beta Was this translation helpful? Give feedback.
-
|
I am very sad to read about the stalled Immutable Actions Publishing . When writing a JS action, you often need other dependencies so you build a (minified/bundled) dist file. This dist file needs to be checked-in into the repository, which is not a good practice. It is a build artifact/output and should be generated by the CI and uploaded to a package registry or as a release asset only. |
Beta Was this translation helpful? Give feedback.
-
|
Another missing key feature is fine grained token support for Packages to generate a temporary access token when using a GitHub app with package scope to not use a PAT for packages during CI: github/roadmap#558 (it is still open but not on the roadmap anymore...) |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
The ways forks are handled is so many disasters.
|
Beta Was this translation helpful? Give feedback.
-
|
Let's talk about the fact that Startup failure isn't a filterable category and isn't included in failure and the fact that this has been ignored for years. |
Beta Was this translation helpful? Give feedback.
-
|
Would love support for updating the run-name throughout the entire job, similar to the action summary: Other recommendations:
|
Beta Was this translation helpful? Give feedback.
-
|
Let's talk about how it's impossible for a normal human to decide how to open a discussion in this category (🚢 Actions). Let's compare 📱 Mobile with 🚢 Actions:
There are two drop downs:
There's also a placeholder for the main body, there's nothing wrong here ✅.
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
I would love to see more engagement and collaboration with open source developers, since that (presumably) is what GitHub is all about. The various actions/* repos have issues and pull requests enabled, but as of late have all added this disappointing note to their READMEs:
I know first hand that running an open source project is challenging, and triaging issues and pull requests can be a big time sink. But surely there's a better middle ground? Taking actions/runner as an example, there are many longstanding bugs/limitations that have simple PRs1 to address them, but they haven't even had the slightest acknowledgement from maintainers. That doesn't really "help [y]our customers be successful while making developers' lives easier". I would love to make even more substantial contributions (e.g. support expressions in Footnotes
|
Beta Was this translation helpful? Give feedback.
-
|
The runner-images repo has mentioned this in the readme for two years:
Is this still planned? I frequently have to shift workloads away from hosted runners to a self-hosted runner to access a beta Xcode or MacOS version. |
Beta Was this translation helpful? Give feedback.
-
|
I currently am awaiting for a 2nd linux distribution image to be included as a fallback operating system in the event that Ubuntu itself is failing to function properly as requested in the partner-runner-images repository. but tl;dr: GitHub Codespaces has Alpine Linux available as a fallback operating system when Ubuntu fails to start up properly but not GH actions itself. |
Beta Was this translation helpful? Give feedback.
-
|
Asking for workflows in sub folders once again https://github.com/orgs/community/discussions/18055 In my org we have many monorepos with many tens of services in, each with multiple workflows that all live in a flat directory structure. This feels very messy. Finding a particular workflow in the actions tab takes clicking 'Show more workflows' multiple times and scrolling. We've had to work around this by combining multiple workflows into one, but we sacrifice being able to trigger them individually without a custom solution. It might not sound like much but is a huge pain. Some way to group related workflows into folders that are traversable in the actions tab would be a huge QOL for us. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
For skipped jobs, output state of variables that caused the skip. It can currently be very hard to determine why a specific job may have been skipped if there's multiple conditions, and what we get right now is not very helpful in terms of logs / output on the run itself. |
Beta Was this translation helpful? Give feedback.
-
|
Make it easier to handle output values from Matrix jobs. We would be using Matrix strategy in several areas if there were a usable output mechanism integrated. If I recall correctly, currently, whichever matrix execution writes to the output last overwrites the entire output. There are other discussions on the topic, but I've ran into this limitation and it was quite frustrating and made us just unroll the matrix into hand-coded jobs with different parameters, which is a shame. |
Beta Was this translation helpful? Give feedback.
-
|
You made me happy with this post. Together with the already promised updates, here a few features that would save a lot of time and make the workflows less verbose. tl;dr: Working with actions would get a lot less complicated if data and parameter transfer between jobs and workflows was more simple and re-use of all kinds of entities, such as parameters, steps, jobs and workflows was built-in. Actions are versatile but require a lot of overhead, are complicated to develop and test offline. Many things listed below are doable already with complicated workarounds, but getting rid of such fragile contraptions would be a bliss. Random Build Engineer's wishlistWorkflow development
Retries and re-running
Release processGitHub could host project- and repository-specific running numbers, with a bump via API for release versioning without having complicated workarounds or external version databases. This should be independent of the workflow file and run number. It is not always handy to use tags, especially in monorepo with plethora of parallel (pre-)releases. |
Beta Was this translation helpful? Give feedback.
-
|
https://github.com/orgs/community/discussions/106392 + https://github.com/orgs/community/discussions/41705 + https://github.com/orgs/community/discussions/70621 |
Beta Was this translation helpful? Give feedback.
-
|
Regarding Actions Cache: Add a button in the UI to delete ALL caches. While you can use a custom script to delete the caches manually, there is no button in the web UI for such a basic request. |
Beta Was this translation helpful? Give feedback.
-
|
The fact that anchors don't work reliably is driving me crazy: |
Beta Was this translation helpful? Give feedback.
-
|
Connecting a number of things, there's a desire to be able to step through actions, e.g.: I can certainly work around such a thing myself by adding steps that look for a while and sleep until it's present (I've done such things all over), but it's clearly something people like to be able to do -- it's a basic function of a debugger (pause / step / continue / break). There are a bunch of shell implementations
|
Beta Was this translation helpful? Give feedback.
-
|
Another feature I really miss: (Unit) Test result visualization There is no GitHub built-in feature for uploading (unit) test results, to see the results live during job execution, the history (for flaky tests), and only failed tests etc. GitLab has this feature: https://docs.gitlab.com/ci/testing/unit_test_reports/ Yes, you can use the job summary, but without a (searchable/filterable) history. Also, you can only see the history at the end of the job, while ideally GitHub could show the jobs during execution (via outputting a specific line in the logs similar to the existing output). Ideally, you can also create an issue/test cases (like in Jira) from a failing test. |
Beta Was this translation helpful? Give feedback.
-
|
There's a prestep which is really interesting, but once things start, that output isn't available from the ui: Requested labels: ubuntu-latest
Job defined at: check-spelling-sandbox/check-spelling-coverage/.github/workflows/pages.yml@refs/heads/main
Waiting for a runner to pick up this job...
Evaluating build.if
Evaluating: success()
Result: true
Job is waiting for a hosted runner to come online.
Job is about to start running on the hosted runner: GitHub Actions 1000044131(I think that info is somewhere in the download logs) |
Beta Was this translation helpful? Give feedback.
-
|
Run label is wrong for local actions:
That line should correspond to:
But the log has a spurious / disconcerting leading |
Beta Was this translation helpful? Give feedback.
-
Required status checks enhancementTouches on path filtering, and minutes billing Currently the docs draw attention to a crucial limitation, namely that required status checks skipped by path filters are not reported as skipped. This can be worked around by running a small job that does the filtering and that job then causes the required status check to be skipped - which can be considered as a success by GitHub. However this means that CI minutes have to be burned to do this. Even if the workflow takes 1 second to do the filtering, I get billed for a full minute of CI time, which adds up fast for larger teams or more frequent commits/PRs. Which takes me to my next point. Sub-minute actions billingI won't try to appeal to the business side of it, we all know why it is how it is. However, since GitHub itself is able to report actions usage with 1 second precision, it would also make sense and would be very beneficial for users to be billed for CI seconds rather than minutes. I am fine with rounding up seconds, so every started second ie. 100ms would count as 1s. This is less user friendly when you do this with minutes, as 1 second of CI time gets billed at a 60x rate. Almost 2 orders of magnitude more. GitHub clearly has the capability to track actions usage with the temporal precision of 1 second, because many UI elements reflect this, for example: By doing this, it would significantly reduce the cost of working around GitHub's limitations, and I would be able to justify paying for it. I would like to really emphasise the path filtering limitation is directly forcing us to burn CI minutes to save costs. So we are forced to use more of GHA. If the pricing for this is unreasonable - rounding up minutes, adding a bridge toll to self-hosted runners - then this becomes predatory and a basic conflict of interest between GitHub and the users, since GitHub is now disincentivized to fix it, as this causes them to charge more overall. Better control plane logicDynamic matrix configurationHaving dependent matrix jobs and those jobs having dynamic matrix configurations is currently very finicky. For example, you cannot skip individual matrix jobs, as a result of a previous matrix job. Imagine the following. You have a monorepo with 5 packages. Your workflow is start a matrix job for each package, and check if a new version needs to be deployed. Return with some value. Then start another matrix job for each, but skip the job depending on if a package needs to be deployed or not. This is currently not possible, because if you put the condition on the job itself, that gets evaluated before the matrix results are available. So you either skip all matrix jobs, or none of them. A workaround would be to then inside the job, add a condition to each step and skip them as needed. However this is very clunky, not maintainable etc. This should be improved. Required matrix job status checksRequiring matrix job status checks runs into the same problems as discussed above, with the addition that matrix jobs are inherently unstable. When skipped they report a different name. When successful they report their real name. So if you have a job like the following test:
if: >-
(github.event_name == 'workflow_dispatch' ||
needs.path-filter.outputs.code == 'true')
&& !cancelled()
needs: path-filter
strategy:
matrix:
platform:
- amd64
- arm64If the job is skipped, a single job will report skipped named success:
timeout-minutes: 1
if: ${{ always() }}
needs: test
runs-on: ubuntu-latest
steps:
- name: Fail if test job failed
if: ${{ needs.test.result == 'failure' }}
run: exit 1
- name: Fail if test job was cancelled
if: ${{ needs.test.result == 'cancelled' }}
run: exit 1
- name: Success
run: echo "Success"And as you can see, I have to burn a full minute of CI for a f***ing Clearer inputs for triggers that don't support themYou can add a bunch of inputs to a Proper ternary expressions
Frankly this is just embarrassing for a 5T dollar company. (You might say it's unfair to compare GitHub to Microsoft. But Microsoft makes sure to remind me they are the boss around here.) Self-trigger workflowsCurrently workflows cannot trigger each other using the default token. So for example one workflow tags a release and pushes the tag. Another workflow gets triggered by the tag push and deploys the release. This does not work currently, the workaround is using a different token to push the tag, ie. a GitHub App. Which leads to... OIDC support for GitHub appsSecretless auth is the hot thing these days, so it is very disappointing that GitHub apps only work via secrets. This makes it very clunky to manage, because you almost always have to put them as a repo secret, which means all pipelines can access it. Because putting into environments means you'd have to copy them multiple times. I would really love just get a GitHub App token via OIDC like you can with Azure, AWS etc. This would make things so much easier. honorable mentions
my proposed compromiseNow, charging for the control plane usage... I understand running that infra is not free. I can accept a surcharge for using self-hosted runners, however please put a limit on it, like usage above 1-2 minutes gets surcharged, under it it's free. Because of the above mentioned limitations, I am forced to use CI minutes. I don't want to. Trust me, I spend countless hours trying not to and use the native platform, but I just cannot. So I have to declare these mini-jobs that evaluate conditions for me that GitHub is not able to handle. These jobs take less than 20s to run so running them on even the smallest runner on offer, would cost a not insignificant amount of money. Therefore it is actually a valid trade-off to run these on self-hosted runners. For example:
To me there has always been this gentleman's agreement with GitHub: that they don't fix the platform's shortcomings, but I don't have to pay for the workarounds as longs as I solve them with self-hosted runners. This is just one of the jobs in one repo from the month of January and it will go on to take up 10% of the free minutes of a GitHub Team subscription by the end of the month. We have about 10 of these jobs, so before any expensive CI job even starts in this repo, we have already burned through the subscription included minutes every month. This feels more like protection racketeering than a true free offering.
Of course if we didn't do any of this, we would just run CI all the time, which would be even more money spent. GitHub of course would be very happy if this was the case, I'm sure. |
Beta Was this translation helpful? Give feedback.
-
|
We desperately need a better version of the setting "Require status checks to pass before merging". Our organization requires that all running pipelines must succeed before allowing developers to merge. The current functionality makes this impossible without a third party library like https://github.com/poseidon/wait-for-status-checks. We really need a single check-box that says "All running checks must pass before allowing merge". This should apply to both pipelines and merge queues. The problem with the current "Require status checks...." are three fold:
These limitations make the current functionality completely non-operation. In terms of competitors boths Gitlab and Codeberg have a simple "Pipelines must succeed" checkbox to enable this functionality. You can also see the demand for a better solution based on the usage of tools like https://github.com/marketplace/actions/alls-green and https://github.com/poseidon/wait-for-status-checks. |
Beta Was this translation helpful? Give feedback.
-
|
We need the ability to not run workflows when the PR is in a draft state. Currently there is no combination of filters that would allow that. It's almost as if we need negative filters. An It is common for developers to open PRs in a draft state very early on before they are ready for review. Allowing actions to run in this state eats up a lot of resources. It would be helpful to specify workflows that only run when the PR is active. |
Beta Was this translation helpful? Give feedback.
-
|
macOS runners on GHE.com. It is currently not supported, but there is also no roadmap item to follow. |
Beta Was this translation helpful? Give feedback.
-
|
Hi all, just wanted to share an update from the Actions team. We've had a few new items released:
We also have a bunch of open items in progress
This list isn't exhaustive, there are many other things the team is either investigating or actively developing that we aren't ready to share yet. We'll have more updates as we make more progress. In the meantime, we have two asks:
Thanks! |
Beta Was this translation helpful? Give feedback.









Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
As we wrap up the past year, we want to take a moment to reflect on everything we’ve built and shipped for GitHub Actions together.
When it comes to GitHub Actions, you’ve told us what improvements matter most: faster builds, better caching, more workflow flexibility, and rock-solid reliability. We heard you.
Across the year, we delivered a number of improvements directly shaped by conversations you started.
Our detailed year-in-review blog post outlines each update in full, but below is a brief summary to give a quick recap of the main highlights.
YAML anchors: reducing duplication in complex workflows:
one of the most requested features across both the runners and community repositories. Letting you define configuration settings once with an anchor (&) and reference them elsewhere with an alias (*).
Non-public workflow templates for consistent CI across teams:
we released non-public workflow templates, a longstanding request from organizations that want consistent, private workflow scaffolding. Non-public workflow templates let organizations set up common templates for their teams directly in their .github repository.
Deeper reusable workflows for modular, large-scale pipelines:
we shipped increases to reusable workflow depth (another key request from the community). Reusable workflows let you break your automation into modular, shareable pieces.
Larger caches for bigger projects and dependency-heavy builds:
repositories can now exceed the previous 10GB cache limit that was only possible due to our architecture rework, and fulfills a request from the community, particularly among some of our largest users.
More workflow dispatch inputs for richer automation:
increased the number of workflow dispatch inputs from 10 to 25, which also came up in our community discussions.
These are just a few. The full blog post includes additional context, further examples of community impact, and so much more. This space is dedicated to hearing your side of the story.
What’s coming in early 2026
This is just the beginning as there is much we want to do to deliver an even better experience with Actions. Here’s what we’re planning for the first quarter of 2026, influenced by some of the top requests from our community
We’re interested in hearing how you plan to use these upcoming capabilities and which ones you believe will make the biggest impact.
Help us shape the 2026 roadmap for GitHub Actions
We’d love to use this space to really understand what you need and what excites you as we think about the 2026 roadmap for GitHub Actions. This is a chance for us to learn from your experiences, hear what’s working, and explore where we can take things next together.
Share your stories
If any of the updates we highlighted have helped you this year, we’d love to hear your stories. If GitHub Actions is key to your work, share what it’s helped you accomplish. If you have done something with Actions you are proud of, share it with us! The team cares deeply about it, and your feedback and appreciation mean a lot to them.
What you still need
If there’s something you’re still hoping for, we’d love to hear what it is and how it would change the way you work or what it would unlock for you. Feel free to share any discussions that reflect your experience or needs.
Hearing directly from you, our users, keeps us connected to what really matters, and we appreciate you being part of the conversation. We know GitHub Actions powers how developers build software, and the best version is the one we’ll build together.
Beta Was this translation helpful? Give feedback.
All reactions