Dart: allow using immutable structs as default value #4702
Workflow file for this run
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: 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 |