Nightly Release macOS x86_64 #832
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
on: | |
#pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 9 * * *" # 9=9am utc+0 | |
name: Nightly Release macOS x86_64 | |
env: | |
LLVM_SYS_160_PREFIX: /usr/local/opt/llvm@16 | |
jobs: | |
test-build-upload: | |
name: build, test, package and upload nightly release | |
runs-on: [self-hosted, macOS, X64] | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update PATH to use zig 11 | |
run: | | |
echo "PATH=/Users/username1/Downloads/zig-macos-x86_64-0.11.0:$PATH" >> $GITHUB_ENV | |
- run: zig version | |
- name: write version to file | |
run: ./ci/write_version.sh | |
- name: execute rust tests | |
run: cargo test --release --locked -- --skip opaque_wrap_function --skip gen_list::bool_list_literal --skip platform_switching_swift --skip swift_ui --skip gen_tags::phantom_polymorphic_record | |
# swift tests are skipped because of "Could not find or use auto-linked library 'swiftCompatibilityConcurrency'" on macos x86_64 CI machine | |
# this issue may be caused by using older versions of XCode | |
- name: build release | |
run: RUSTFLAGS="-C target-cpu=x86-64" cargo build --profile=release-with-lto --locked --bin roc --bin roc_language_server | |
# target-cpu=x86-64 -> For maximal compatibility for all CPU's. | |
- name: get commit SHA | |
run: echo "SHA=$(git rev-parse --short "$GITHUB_SHA")" >> $GITHUB_ENV | |
- name: get date | |
run: echo "DATE=$(date "+%Y-%m-%d")" >> $GITHUB_ENV | |
- name: build file name | |
env: | |
DATE: ${{ env.DATE }} | |
SHA: ${{ env.SHA }} | |
run: echo "RELEASE_FOLDER_NAME=roc_nightly-macos_x86_64-$DATE-$SHA" >> $GITHUB_ENV | |
# this makes the roc binary a lot smaller | |
- name: strip debug info | |
run: strip ./target/release-with-lto/roc | |
- name: package release | |
run: ./ci/package_release.sh ${{ env.RELEASE_FOLDER_NAME }} | |
- name: Upload artifact. Actually uploading to github releases has to be done manually. | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.RELEASE_FOLDER_NAME }}.tar.gz | |
path: ${{ env.RELEASE_FOLDER_NAME }}.tar.gz | |
retention-days: 4 |