aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBradley Lewis <22850972+BradLewis@users.noreply.github.com>2025-10-11 20:00:29 -0400
committerGitHub <noreply@github.com>2025-10-11 20:00:29 -0400
commit3e9dc7f8353edd0ef389005fbf98a900e8007b6c (patch)
treedaa46fa8ee9d867b28ecab7b24693a986db9aad9
parented91e4409c4605baa58d3ab333d9d093a112212c (diff)
parent617bd092c14e4cf997d99eea9d9ad2c5ce12e8af (diff)
Merge pull request #1088 from BradLewis/feat/create-releasesdev-2025-09
Update nightly release action to allow creating releases tied to odin versions
-rw-r--r--.github/workflows/release.yml (renamed from .github/workflows/nightly.yml)38
-rw-r--r--ci.bat13
-rwxr-xr-xci.sh6
3 files changed, 45 insertions, 12 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/release.yml
index 3efe602..5f8a312 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/release.yml
@@ -1,11 +1,14 @@
-name: nightly
+name: release
env:
ODIN_BRANCH: dev-2025-09
on:
workflow_dispatch:
schedule:
- - cron: 0 2 * * 0
+ - cron: 0 2 * * 0 # weekly 'nightly' release
+ push:
+ tags:
+ - dev-**
jobs:
dist-arm64-darwin:
@@ -13,6 +16,11 @@ jobs:
timeout-minutes: 15
steps:
- uses: actions/checkout@v1
+ - name: Set ODIN_BRANCH from tag if available
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
+ run: |
+ echo "ODIN_BRANCH=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+ echo "OLS_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Download LLVM and setup PATH
run: |
brew install llvm@17
@@ -33,7 +41,7 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
- name: dist-arm64-darwin
+ name: dist-arm64-darwin
path: ./dist
dist-x86_64-darwin:
@@ -41,6 +49,11 @@ jobs:
timeout-minutes: 15
steps:
- uses: actions/checkout@v1
+ - name: Set ODIN_BRANCH from tag if available
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
+ run: |
+ echo "ODIN_BRANCH=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+ echo "OLS_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Download LLVM and setup PATH
run: |
brew install llvm@17
@@ -71,6 +84,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
+ - name: Set ODIN_BRANCH from tag if available
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
+ run: |
+ echo "ODIN_BRANCH=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+ echo "OLS_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Download LLVM
run: |
wget https://apt.llvm.org/llvm.sh
@@ -101,6 +119,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
+ - name: Set ODIN_BRANCH from tag if available
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
+ run: |
+ echo "ODIN_BRANCH=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+ echo "OLS_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Download LLVM
run: |
wget https://apt.llvm.org/llvm.sh
@@ -133,6 +156,13 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
+ - name: Set ODIN_BRANCH from tag if available
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
+ shell: pwsh
+ run: |
+ $tagName = $env:GITHUB_REF.Replace('refs/tags/', '')
+ echo "ODIN_BRANCH=$tagName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ echo "OLS_VERSION=$tagName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Download Odin
shell: cmd
run: |
@@ -224,5 +254,5 @@ jobs:
uses: ./.github/actions/github-release
with:
files: "dist/*"
- name: "nightly"
+ name: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && github.ref_name || 'nightly' }}
token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/ci.bat b/ci.bat
index 90dea49..9466d7c 100644
--- a/ci.bat
+++ b/ci.bat
@@ -2,20 +2,21 @@
setlocal enabledelayedexpansion
-for /f %%a in ('git rev-parse --short HEAD 2^>NUL') do set commit_hash=%%a
-for /f %%d in ('powershell -command "[DateTime]::UtcNow.ToString('yyyy-MM-dd')"') do set today=%%d
-set version=nightly-%today%-%commit_hash%
-
+if not defined OLS_VERSION (
+ for /f %%a in ('git rev-parse --short HEAD 2^>NUL') do set commit_hash=%%a
+ for /f %%d in ('powershell -command "[DateTime]::UtcNow.ToString('yyyy-MM-dd')"') do set today=%%d
+ set "OLS_VERSION=nightly-!today!-!commit_hash!"
+)
if "%1" == "CI" (
set "PATH=%cd%\Odin;!PATH!"
odin test tests -collection:src=src -define:ODIN_TEST_THREADS=1
if %errorlevel% neq 0 exit /b 1
- odin build src\ -collection:src=src -out:ols.exe -o:speed -no-bounds-check -extra-linker-flags:"/STACK:4000000,2000000" -define:VERSION=%version%
+ odin build src\ -collection:src=src -out:ols.exe -o:speed -no-bounds-check -extra-linker-flags:"/STACK:4000000,2000000" -define:VERSION=%OLS_VERSION%
call "tools/odinfmt/tests.bat"
if %errorlevel% neq 0 exit /b 1
) else (
- odin build src\ -collection:src=src -out:ols.exe -o:speed -no-bounds-check -extra-linker-flags:"/STACK:4000000,2000000" -define:VERSION=%version%
+ odin build src\ -collection:src=src -out:ols.exe -o:speed -no-bounds-check -extra-linker-flags:"/STACK:4000000,2000000" -define:VERSION=%OLS_VERSION%
)
diff --git a/ci.sh b/ci.sh
index 048ece0..35631c3 100755
--- a/ci.sh
+++ b/ci.sh
@@ -1,6 +1,8 @@
#!/usr/bin/env bash
-VERSION="nightly-$(date -u '+%Y-%m-%d')-$(git rev-parse --short HEAD)"
+if [[ -z "$OLS_VERSION" ]]; then
+ OLS_VERSION="nightly-$(date -u '+%Y-%m-%d')-$(git rev-parse --short HEAD)"
+fi
if [[ $1 == "CI" ]]
then
@@ -37,4 +39,4 @@ then
fi
-odin build src/ -show-timings -collection:src=src -out:ols -no-bounds-check -o:speed -define:VERSION=$VERSION $@
+odin build src/ -show-timings -collection:src=src -out:ols -no-bounds-check -o:speed -define:VERSION=$OLS_VERSION $@