Nightly #1304
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Nightly | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: 0 20 * * * | |
jobs: | |
build_windows: | |
if: github.repository == 'odin-lang/Odin' | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v1 | |
- name: build Odin | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat | |
./build.bat 1 1 | |
- name: Odin run | |
shell: cmd | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat | |
odin run examples/demo | |
- name: Copy artifacts | |
run: | | |
rm bin/llvm/windows/LLVM-C.lib | |
mkdir dist | |
cp odin.exe dist | |
cp LLVM-C.dll dist | |
cp -r shared dist | |
cp -r core dist | |
cp -r vendor dist | |
cp -r bin dist | |
cp -r examples dist | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1 | |
with: | |
name: windows_artifacts | |
path: dist | |
build_ubuntu: | |
if: github.repository == 'odin-lang/Odin' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: (Linux) Download LLVM | |
run: sudo apt-get install llvm-11 clang-11 | |
- name: build odin | |
run: make nightly | |
- name: Odin run | |
run: ./odin run examples/demo | |
- name: Copy artifacts | |
run: | | |
mkdir dist | |
cp odin dist | |
cp libLLVM* dist | |
cp -r shared dist | |
cp -r core dist | |
cp -r vendor dist | |
cp -r examples dist | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1 | |
with: | |
name: ubuntu_artifacts | |
path: dist | |
build_macos: | |
if: github.repository == 'odin-lang/Odin' | |
runs-on: macOS-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Download LLVM and setup PATH | |
run: | | |
brew install llvm@13 | |
echo "/usr/local/opt/llvm@13/bin" >> $GITHUB_PATH | |
TMP_PATH=$(xcrun --show-sdk-path)/user/include | |
echo "CPATH=$TMP_PATH" >> $GITHUB_ENV | |
- name: build odin | |
run: make nightly | |
- name: Odin run | |
run: ./odin run examples/demo | |
- name: Copy artifacts | |
run: | | |
mkdir dist | |
cp odin dist | |
cp -r shared dist | |
cp -r core dist | |
cp -r vendor dist | |
cp -r examples dist | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1 | |
with: | |
name: macos_artifacts | |
path: dist | |
upload_b2: | |
runs-on: [ubuntu-latest] | |
needs: [build_windows, build_macos, build_ubuntu] | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.8.x' | |
- name: Install B2 CLI | |
shell: bash | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade b2 | |
- name: Display Python version | |
run: python -c "import sys; print(sys.version)" | |
- name: Download Windows artifacts | |
uses: actions/download-artifact@v1 | |
with: | |
name: windows_artifacts | |
- name: Download Ubuntu artifacts | |
uses: actions/download-artifact@v1 | |
with: | |
name: ubuntu_artifacts | |
- name: Download macOS artifacts | |
uses: actions/download-artifact@v1 | |
with: | |
name: macos_artifacts | |
- name: Create archives and upload | |
shell: bash | |
env: | |
APPID: ${{ secrets.B2_APPID }} | |
APPKEY: ${{ secrets.B2_APPKEY }} | |
BUCKET: ${{ secrets.B2_BUCKET }} | |
DAYS_TO_KEEP: ${{ secrets.B2_DAYS_TO_KEEP }} | |
run: | | |
echo Authorizing B2 account | |
b2 authorize-account "$APPID" "$APPKEY" | |
echo Uploading artifcates to B2 | |
chmod +x ./ci/upload_create_nightly.sh | |
./ci/upload_create_nightly.sh "$BUCKET" windows-amd64 windows_artifacts/ | |
./ci/upload_create_nightly.sh "$BUCKET" ubuntu-amd64 ubuntu_artifacts/ | |
./ci/upload_create_nightly.sh "$BUCKET" macos-amd64 macos_artifacts/ | |
echo Deleting old artifacts in B2 | |
python3 ci/delete_old_binaries.py "$BUCKET" "$DAYS_TO_KEEP" | |
echo Creating nightly.json | |
python3 ci/create_nightly_json.py "$BUCKET" > nightly.json | |
echo Uploading nightly.json | |
b2 upload-file "$BUCKET" nightly.json nightly.json | |
echo Clear B2 account info | |
b2 clear-account |