A GitHub Action to install and configure Julia for CI/CD workflows, supporting version ranges, architectures, and matrix testing.
setup-julia is a GitHub Action that automatically installs and configures Julia programming language environments in GitHub Actions workflows. It solves the problem of manually managing Julia installations in CI/CD pipelines by providing flexible version specification, architecture support, and integration with GitHub's matrix testing features.
Julia developers and teams using GitHub Actions for continuous integration, testing, and deployment of Julia packages and applications.
Developers choose setup-julia because it's the official, community-maintained solution for Julia CI/CD on GitHub Actions, offering reliable version resolution, cross-platform support, and seamless integration with GitHub's workflow system.
This action sets up a Julia environment for use in actions by downloading a specified version of Julia and adding it to PATH.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports exact versions, ranges (caret/tilde), LTS, nightly, and prereleases using semver logic, allowing precise control over Julia environments in CI.
Configurable for x64, x86, and aarch64 architectures, with warnings for suboptimal setups like x64 on Apple Silicon runners to prevent misconfigurations.
Designed for seamless use with GitHub Actions matrix strategies, enabling easy cross-version and cross-OS testing for Julia packages.
Can resolve 'min-minor' and 'min-patch' versions based on project files (e.g., Julia compat entries), ensuring minimal compatible versions are installed.
aarch64 architecture is explicitly marked as untested in the README, making it unreliable for teams using ARM-based GitHub runners.
Requires version numbers to be wrapped in quotes to avoid YAML parsing errors (e.g., '1.10' parsed as 1.1), a common source of subtle bugs.
Two methods for including prereleases (version tags vs. include-all-prereleases flag) with nuanced differences, which can confuse users managing beta tests.