What would this add? Since the latest Swift release is installed on the github linux and I presume macOS runner images (though not on Windows), a linux/mac CI for a Swift package is as simple as running swift build or swift test.
It would be nice if there were a standard way to install the snapshot toolchains though, as the community efforts appear to have stalled, excepting maybe that new setup-swift one which still appears to have problems on Windows. Maybe that one or some others can be brought in-house and made the official way to install Swift toolchains when needed.
Let me preface this with. We have only just started adopting GitHub Actions in the swift-nio repository and there is still a lot to figure out.
Personally, I would like to see the new swiftlang organization offer two things:
- Official actions for
- Setting up a toolchain
- Running
swift-format
- Running the API breaking check (
swift package diagnose-api-breaking-changes)
- Running a documentation check (Building the package documentation with `warnings-as-errors)
- etc.
- Reusable workflows for our package repositories that cover the essential needs and reduce CI duplication
- Soundness checks (license headers, language, formatting, documentation, etc.)
- Matrix jobs across all supported Swift versions of that package that run
- Unit tests
- Benchmarks if applicable
- Custom test jobs
- etc.
In the swift-nio repository we started to work on the second part and have a good set of reusable workflows. Right now we are exploring how good this setup works by adopting it in a few more repositories like the swift-openapi-generator.
6 Likes
For swiftlang organization, we started discussing workflows and platforms that Swift project will be supported. The core team has given the green light for a new repository, github-workflows, within the swiftlang organization, aimed at centralizing GitHub Actions. Next week, we will share more details about the direction of the repository.
High level this will include workflows categories of repositories:
- Swift Packages
swift build and swift test
CMake if applicable
- Swift repository
- LLVM repository
- more
Goal is to include all officially supported platform over time:
6 Likes
@adam-fowler You should now have permission to trigger CI.
2 Likes
Thanks Mishal, just tried it out and everything is working fine