This repository provides official GitHub Actions for the Jule programming language, designed to simplify continuous integration (CI) and automation workflows for Jule projects. The actions included here make it easy to install Jule, configure the environment, and run common tasks such as building and testing directly in GitHub Actions pipelines.
Here's a basic workflow usage that you can use:
name: Setup Jule
on: [push]
jobs:
jule:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: julelang/setup-jule@v1
with:
version: latestThe version of Jule that will be used.
latestandcurrentfor the latest supported release.devfor the latest commit of source code, the compiler is based on the IR version.juleX.X.Xfor the specific version of Jule.
Note
The latest and current options do not point to the most recently released version immediately.
So, when a new Jule version is released, it may take some time for the latest and current options to point to the new version.
Tip
If you don't need access to the latest features and updates, using the dev version can significantly increase your CI build times.
This is because other versions download precompiled releases, so everything comes pre-packaged.
However, in the dev version, many things need to be packaged from scratch, which can take a considerable amount of time.
Therefore, unless necessary, use latest, current, or a specific Jule release version.
Warning
Version support is guaranteed for jule0.1.7 and later.
Older versions may be specified, but support is not guaranteed.
The Jule compiler to be installed is determined based on the GitHub Actions runner.
For example, with the ubuntu-latest and amd64 combination, the linux-amd64 target will be downloaded.
If an unsupported target is detected, the installation will fail.
Directory where Jule will be downloaded.
Using the local directory (.) is sufficient in most cases and it is the default value.
Whether to add Jule binaries to the PATH or not.
The default and recommended value is true.
setup-jule follows a major-oriented versioning strategy:
- Each major version (for example
v1) is a moving tag. - The
v1tag always points to the latest releasedv1.x.xversion. - When a new compatible release is published (such as
v1.2.3), thev1tag is automatically updated to reference it.
- Automatic updates: You get bug fixes and improvements without changing your workflow.
- Stability guarantee: Breaking changes are introduced only in a new major version (
v2,v3, etc.). - Simpler workflows: No need to pin exact patch versions unless you want to.
- uses: julelang/setup-jule@v1This will always install the latest stable Jule tools and compiler compatible with major version 1.
If you need strict reproducibility, you may pin a specific version:
- uses: julelang/setup-jule@v1.2.3In most cases, using a major tag (v1, v2, etc.) is strongly recommended.
Source code is distributed under the terms of the BSD 3-Clause license.
See License Details