Skip to content

Dart: allow using immutable structs as default value #4702

Dart: allow using immutable structs as default value

Dart: allow using immutable structs as default value #4702

name: Functional tests
on:
push:
paths-ignore:
- 'CHANGELOG.md'
- 'gluecodium/src/main/resources/version.properties'
- 'docs/**'
- 'scripts/**'
- 'tools/**'
pull_request:
paths-ignore:
- 'CHANGELOG.md'
- 'gluecodium/src/main/resources/version.properties'
- 'docs/**'
- 'scripts/**'
- 'tools/**'
jobs:
cpp:
name: C++
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
!*gluecodium*
!*lime-*
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Install CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.3'
- name: Update apt repos
run: sudo apt-get -qq update || true
- name: Install ninja
run: sudo apt install -y ninja-build
- name: Install valgrind
run: sudo apt install -y valgrind
- name: Build and run functional tests
run: |
scripts/build-cpp-functional --valgrind --buildGluecodium
working-directory: functional-tests
- name: Print Valgrind results
if: ${{ always() }}
run: cat functional-tests/build-cpp/Testing/Temporary/MemoryChecker.1.log
android:
name: Android
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
!*gluecodium*
!*lime-*
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Install GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 8
- name: Install CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.3'
- name: Install ninja
run: sudo apt install -y ninja-build
- name: Install Android SDK
run: |
ANDROID_API_LEVEL=android-28
ANDROID_BUILD_TOOLS_VERSION=28.0.3
ANDROID_HOME=${HOME}/android-sdk-linux
PATH=${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/cmdline-tools/latest/bin
mkdir -p "${ANDROID_HOME}/cmdline-tools"
wget -q "https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip" -O android-sdk-tools.zip
unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}/cmdline-tools
mv "${ANDROID_HOME}/cmdline-tools/cmdline-tools" "${ANDROID_HOME}/cmdline-tools/latest"
mkdir -p ~/.android
touch ~/.android/repositories.cfg
yes | sdkmanager --licenses
yes | sdkmanager "platforms;${ANDROID_API_LEVEL}" > /dev/null
yes | sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" > /dev/null
- name: Build and run functional tests
run: |
export ANDROID_HOME=${HOME}/android-sdk-linux
export ANDROID_SDK_ROOT=${ANDROID_HOME}
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
./scripts/build-android-functional --publish --hostOnly
working-directory: functional-tests
- name: Clean build dir
run: ./scripts/clean
working-directory: functional-tests
- name: Build and run namerules tests
run: |
export ANDROID_HOME=${HOME}/android-sdk-linux
export ANDROID_SDK_ROOT=${ANDROID_HOME}
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
./scripts/build-android-namerules --publish
working-directory: functional-tests
swift:
name: Swift on Linux
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
!*gluecodium*
!*lime-*
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Cache Swift SDK
uses: actions/cache@v2
with:
path: ~/swift-sdk
key: ${{ runner.os }}-swift-5.4-release
restore-keys: ${{ runner.os }}-swift-5.4-release
- name: Install CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.3'
- name: Update apt repos
run: sudo apt-get -qq update || true
- name: Install ninja
run: sudo apt install -y ninja-build
- name: Install valgrind
run: sudo apt install -y valgrind
- name: Install libcurl4
run: sudo apt install -y libcurl4
- name: Install Swift SDK
run: |
SWIFT_BRANCH=swift-5.4.3-release
SWIFT_VERSION=swift-5.4.3-RELEASE
SWIFT_PLATFORM=ubuntu20.04
SWIFT_ARCHIVE_NAME=${SWIFT_VERSION}-${SWIFT_PLATFORM}.tar.gz
if [ ! -d "${HOME}/swift-sdk" ]; then
mkdir ~/swift-sdk
pushd ~/swift-sdk
wget -nv https://swift.org/builds/${SWIFT_BRANCH}/$(echo "${SWIFT_PLATFORM}" | tr -d .)/${SWIFT_VERSION}/${SWIFT_ARCHIVE_NAME}
popd
fi
sudo tar xf ~/swift-sdk/${SWIFT_ARCHIVE_NAME} --directory / --strip-components=1
sudo chmod -R o+r /usr/lib/swift/CoreFoundation
- name: Build and run functional tests
run: |
./scripts/build-swift-functional --valgrind --buildGluecodium
working-directory: functional-tests
- name: Removing build folder
run: |
./scripts/clean
echo Listing
ls -a
working-directory: functional-tests
- name: Build and run namerules tests
run: |
./scripts/build-swift-namerules --valgrind --publish
working-directory: functional-tests
- name: Print Valgrind results
if: ${{ failure() }}
run: cat build-swift/Testing/Temporary/MemoryChecker.1.log
working-directory: functional-tests
swift-mac:
name: Swift on MacOS
runs-on: macos-12
steps:
- uses: actions/checkout@v2
- name: Install JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
!*gluecodium*
!*lime-*
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Install ninja
uses: seanmiddleditch/gha-setup-ninja@master
with:
version: 1.11.0
- name: Build and run functional tests
run: |
./scripts/build-swift-functional --buildGluecodium
working-directory: functional-tests
- name: Removing build folder
run: |
./scripts/clean
working-directory: functional-tests
- name: Build and run namerules tests
run: |
./scripts/build-swift-namerules --publish
working-directory: functional-tests
- name: Build examples
run: |
mkdir build_example_calculator
cmake -B build_example_calculator examples/calculator -GXcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_SYSTEM_NAME=iOS
cmake --build build_example_calculator
dart:
name: Dart
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
!*gluecodium*
!*lime-*
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Install CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.3'
- name: Update apt repos
run: sudo apt-get -qq update || true
- name: Install ninja
run: sudo apt install -y ninja-build
- name: Install Dart SDK
run: |
DART_RELEASE_CHANNEL=stable
DART_VERSION=2.12.0
wget -nv https://storage.googleapis.com/dart-archive/channels/${DART_RELEASE_CHANNEL}/release/${DART_VERSION}/linux_packages/dart_${DART_VERSION}-1_amd64.deb
sudo apt -y install ./dart_${DART_VERSION}-1_amd64.deb
- name: Build and run functional tests
run: |
export PATH="${PATH}:/usr/lib/dart/bin"
cd functional-tests
./scripts/build-dart-functional --buildGluecodium
dart-asan:
name: Dart with AddressSanitizer
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
!*gluecodium*
!*lime-*
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Cache Dart SDK
uses: actions/cache@v2
with:
path: ~/dart_sdk
key: ${{ runner.os }}-dart-2.18.1-stable-full
restore-keys: ${{ runner.os }}-dart-2.18.1-stable-full
- name: Install CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.3'
- name: Install ninja
run: sudo apt install -y ninja-build
- name: Compile Dart SDK without tcmalloc
run: |
export DART_ROOT=${HOME}/dart_sdk
export DART_BIN=${DART_ROOT}/bin
export PATH=${PATH}:${PWD}/depot_tools:${DART_BIN}
DART_VERSION=2.18.1
if [ ! -d "${DART_ROOT}/bin" ]; then
sudo apt install -y python3
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
mkdir dart-sdk
pushd dart-sdk
gclient root
gclient config --spec 'solutions = [{"name": "sdk", "url": "https://dart.googlesource.com/sdk.git", "deps_file": "DEPS", "managed": False, "custom_deps": {},},]'
git clone --depth 1 --branch ${DART_VERSION} https://dart.googlesource.com/sdk.git
gclient sync
pushd sdk
./tools/build.py --no-goma --mode release --arch x64 create_sdk --gn-args dart_use_tcmalloc=false
mkdir -p ${DART_BIN}
pushd out/ReleaseX64/dart-sdk
pushd bin
mv * ${DART_BIN}
popd
mv include ${DART_ROOT}
mkdir -p ${DART_ROOT}/lib
mv lib/_internal ${DART_ROOT}/lib
popd
fi
- name: Build and run functional tests
run: |
export PATH="${PATH}:${HOME}/dart_sdk/bin"
cd functional-tests
./scripts/build-dart-functional --buildGluecodium --asan
cmake-tests:
name: CMake toolchain tests
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install JDK
uses: actions/setup-java@v1
with:
java-version: 17
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
!*gluecodium*
!*lime-*
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Install CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.19.3'
- name: Install ninja
run: sudo apt install -y ninja-build
- name: Install Android SDK
run: |
ANDROID_API_LEVEL=android-28
ANDROID_BUILD_TOOLS_VERSION=28.0.3
ANDROID_HOME=${HOME}/android-sdk-linux
PATH=${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/cmdline-tools/latest/bin
mkdir -p "${ANDROID_HOME}/cmdline-tools"
wget -q "https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip" -O android-sdk-tools.zip
unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}/cmdline-tools
mv "${ANDROID_HOME}/cmdline-tools/cmdline-tools" "${ANDROID_HOME}/cmdline-tools/latest"
mkdir -p ~/.android
touch ~/.android/repositories.cfg
yes | sdkmanager --licenses
yes | sdkmanager "platforms;${ANDROID_API_LEVEL}" > /dev/null
yes | sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" > /dev/null
- name: Install Dart SDK
run: |
DART_RELEASE_CHANNEL=stable
DART_VERSION=2.12.0
wget -nv https://storage.googleapis.com/dart-archive/channels/${DART_RELEASE_CHANNEL}/release/${DART_VERSION}/linux_packages/dart_${DART_VERSION}-1_amd64.deb
sudo apt -y install ./dart_${DART_VERSION}-1_amd64.deb
- name: Build and run functional tests
run: |
export ANDROID_HOME=${HOME}/android-sdk-linux
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:/usr/lib/dart/bin
./gradlew publishToMavenLocal
cd cmake
GLUECODIUM_BUILD_ENVIRONMENT=android-host cmake -P run-cmake-unit-test.cmake