Skip to content

progress of "export" and missing functionality (10112024) #1154

progress of "export" and missing functionality (10112024)

progress of "export" and missing functionality (10112024) #1154

name: Test - Release - Linux
on:
# push:
# branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
schedule:
# 8:30 and 18:30 UTC:
# - cron: '30 8,18 * * *'
- cron: '30 18 * * 1'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
CACHE_VERSION: v8
LLVM_VERSION: 19
LLVM_TARGZFILE: "https://www.dropbox.com/scl/fi/l9xrfupdbwqbnckr5g36p/llvm_19_1_3_release.tgz?rlkey=xubw01vl6ey3xszbph32xqfip&st=okz2ghqx&dl=1"
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-22.04
steps:
# - name: check disk space
# run: Get-PSDrive
# shell: pwsh
- uses: actions/checkout@v2
- name: Cache Build 3rd Party
id: cache-3rd-party
uses: actions/cache@v2
with:
path: __build/llvm/ninja
key: ${{ runner.os }}-build-llvm-${{ env.LLVM_VERSION }}-${{ env.CACHE_VERSION }}
- name: Cache 3rd Party binaries
id: cache-3rd-party-binary
uses: actions/cache@v2
with:
path: 3rdParty
key: ${{ runner.os }}-3rd-party-${{ env.LLVM_VERSION }}-${{ env.CACHE_VERSION }}
- name: Cache 3rd Party binaries - LLVM ${{ env.LLVM_VERSION }} Release
id: cache-3rd-party-binary-llvm-release
uses: actions/cache@v2
with:
path: llvm_${{ env.LLVM_VERSION }}_release.tgz
key: ${{ runner.os }}-3rd-party-llvm-${{ env.LLVM_VERSION }}-release-${{ env.CACHE_VERSION }}
- name: Delete __Build TS folders
continue-on-error: true
run: rm -R ./__build/tsc/ninja/release
shell: sh
- name: Create __Build Folders
run: mkdir -p ./__build/tsc/ninja/release; mkdir -p ./__build/gc/ninja/release
shell: sh
- name: Download 3rd party - LLVM
continue-on-error: true
shell: sh
run: |
if test ! -f "llvm_${{ env.LLVM_VERSION }}_release.tgz"; then
curl --insecure -L "${{ env.LLVM_TARGZFILE }}" --output llvm_${{ env.LLVM_VERSION }}_release.tgz
fi
- name: UnZip 3rd party - LLVM
continue-on-error: false
shell: sh
run: |
if test -f "llvm_${{ env.LLVM_VERSION }}_release.tgz"; then
file llvm_${{ env.LLVM_VERSION }}_release.tgz; mkdir -p ./3rdParty/llvm; tar -xf llvm_${{ env.LLVM_VERSION }}_release.tgz -C ./3rdParty/llvm/
fi
- name: Download 3rd party source - GC
continue-on-error: true
shell: sh
run: curl --insecure -L https://www.hboehm.info/gc/gc_source/gc-8.0.4.tar.gz --output gc-8.0.4.tar.gz
- name: Download 3rd party source - GC:Atomic_ops
continue-on-error: true
shell: sh
run: curl --insecure -L https://www.hboehm.info/gc/gc_source/libatomic_ops-7.6.10.tar.gz --output libatomic_ops-7.6.10.tar.gz
- name: UnZip 3rd party source - GC
continue-on-error: false
shell: sh
run: tar -xvzf gc-8.0.4.tar.gz -C ./3rdParty/
- name: UnZip 3rd party source - GC:Atomic_ops
continue-on-error: false
shell: sh
run: tar -xvzf libatomic_ops-7.6.10.tar.gz -C ./3rdParty/
- name: Copy Atomic_ops to GC
continue-on-error: false
shell: sh
run: cp -a ./3rdParty/libatomic_ops-7.6.10/ ./3rdParty/gc-8.0.4/libatomic_ops/
- name: Copy fixes to GC
continue-on-error: false
shell: sh
run: cp -ar ./docs/fix/gc/* ./3rdParty/gc-8.0.4/
- name: Install Ninja
continue-on-error: false
shell: sh
run: sudo apt install ninja-build
# - name: Install Clang 12
# continue-on-error: false
# shell: sh
# run: sudo apt install clang-12
- name: Configure GC
continue-on-error: false
working-directory: ${{github.workspace}}/__build/gc/ninja/release
shell: sh
run: cmake ../../../../3rdParty/gc-8.0.4 -G "Ninja" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -Wno-dev -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=../../../../3rdParty/gc/release -Denable_threads=ON -Denable_cplusplus=OFF
- name: Build GC
continue-on-error: false
working-directory: ${{github.workspace}}/__build/gc/ninja/release
shell: sh
run: cmake --build . --config ${{ env.BUILD_TYPE }} -j 8
- name: Copy GC
continue-on-error: false
working-directory: ${{github.workspace}}/__build/gc/ninja/release
shell: sh
run: mkdir -p ../../../../3rdParty/gc/release/; cp ./lib* ../../../../3rdParty/gc/release/
- name: List GC files
continue-on-error: false
working-directory: ${{github.workspace}}/3rdParty/gc/release/
shell: sh
run: ls -l
- name: Configure
continue-on-error: false
working-directory: ${{github.workspace}}/__build/tsc/ninja/release
shell: sh
run: cmake ../../../../tsc -G "Ninja" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -Wno-dev
- name: Build
continue-on-error: false
working-directory: ${{github.workspace}}/__build/tsc/ninja/release
shell: sh
run: cmake --build . --config ${{ env.BUILD_TYPE }} -j 4
- name: Test
continue-on-error: false
working-directory: ${{github.workspace}}/__build/tsc/ninja/release
shell: sh
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -j1 -C ${{ env.BUILD_TYPE }} -T test --output-on-failure -T test --output-on-failure
env:
LLVM_SYMBOLIZER_PATH: ${{github.workspace}}/3rdParty/llvm/release/bin