From 3eef44f27865c754176e542ba61726e99c1d2dd4 Mon Sep 17 00:00:00 2001 From: Martin Kinkelin Date: Fri, 10 Feb 2023 19:15:09 +0100 Subject: [PATCH] Migrate Linux-aarch64 CI from Travis to Cirrus CI As Travis seems non-operational, at least since yesterday. --- .cirrus.yml | 128 +++++++++-- .gitattributes | 1 - .github/actions/upload-to-github/action.yml | 2 +- .travis.yml | 226 -------------------- README.md | 2 - 5 files changed, 115 insertions(+), 244 deletions(-) delete mode 100644 .travis.yml diff --git a/.cirrus.yml b/.cirrus.yml index 0843c0cd44b..a18085e1109 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,6 +1,6 @@ # Installs lit, clones the git submodules, builds LDC and the test # runners and runs the tests. -# Requires env variables CI_OS, EXTRA_CMAKE_FLAGS and PARALLELISM. +# Requires env variables CI_ARCH, CI_OS, EXTRA_CMAKE_FLAGS and PARALLELISM. common_steps_template: &COMMON_STEPS_TEMPLATE install_lit_script: | # Install lit @@ -35,6 +35,13 @@ common_steps_template: &COMMON_STEPS_TEMPLATE ctest --output-on-failure -R ldc2-unittest run_lit_testsuite_script: | cd $CIRRUS_WORKING_DIR/../build/tests + if [[ "$CI_OS-$CI_ARCH" == "linux-aarch64" ]]; then + # FIXME: the following tests fail + rm $CIRRUS_WORKING_DIR/tests/debuginfo/nested_gdb.d + rm $CIRRUS_WORKING_DIR/tests/sanitizers/fuzz_basic.d + # the following 2 have regressed with LLVM 13 + rm $CIRRUS_WORKING_DIR/tests/sanitizers/msan_{noerror,uninitialized}.d + fi python3 runlit.py -v -j $PARALLELISM . run_dmd_testsuite_script: | cd $CIRRUS_WORKING_DIR/../build @@ -43,14 +50,23 @@ common_steps_template: &COMMON_STEPS_TEMPLATE # Run defaultlib unittests & druntime integration tests cd $CIRRUS_WORKING_DIR/../build excludes="dmd-testsuite|ldc2-unittest|lit-tests" - # FIXME: unittest failure for unclear reason - if [ "$CI_OS" == "freebsd" ]; then + if [[ "$CI_OS" == "freebsd" ]]; then + # FIXME: unittest failure for unclear reason excludes+='|^std.experimental.allocator-shared$' + elif [[ "$CI_OS-$CI_ARCH" == "linux-aarch64" ]]; then + # FIXME: segfaults with enabled optimizations + excludes+='|^core.thread.fiber(-shared)?$' + # FIXME: failing unittest(s) + excludes+='|^std.internal.math.gammafunction' + # FIXME: failing unittest(s) with enabled optimizations + excludes+='|^std.math.exponential(-shared)?$' + # FIXME: failure + excludes+='|^druntime-test-exceptions-debug$' fi ctest -j$PARALLELISM --output-on-failure -E "$excludes" # Performs the extra packaging steps for jobs producing a prebuilt package. -# Requires env variables CI_OS and GITHUB_TOKEN (and CC for FreeBSD). +# Requires env variables CI_ARCH, CI_OS, GITHUB_TOKEN and PARALLELISM (and CC for FreeBSD). packaging_steps_template: &PACKAGING_STEPS_TEMPLATE # Install LDC & make portable install_script: | @@ -70,8 +86,8 @@ packaging_steps_template: &PACKAGING_STEPS_TEMPLATE run_shared_libs_integration_test_script: | cd $CIRRUS_WORKING_DIR/.. echo 'void main() { import std.stdio; writefln("Hello world, %d bits", size_t.sizeof * 8); }' > hello.d - installed/bin/ldc2 hello.d -m64 -of=hello64 -link-defaultlib-shared - ./hello64 + installed/bin/ldc2 hello.d -of=hello -link-defaultlib-shared + ./hello # Run hello-world integration test with LTO run_lto_integration_test_script: | cd $CIRRUS_WORKING_DIR/.. @@ -82,7 +98,10 @@ packaging_steps_template: &PACKAGING_STEPS_TEMPLATE # Run dynamic-compile integration test run_dynamic_compile_integration_test_script: | cd $CIRRUS_WORKING_DIR/.. - installed/bin/ldc2 -enable-dynamic-compile -run $CIRRUS_WORKING_DIR/tests/dynamiccompile/array.d + # FIXME: disabled since LLVM 12, needs https://github.com/ldc-developers/ldc/pull/3184 + if [[ "$CI_OS" == "freebsd" ]]; then + installed/bin/ldc2 -enable-dynamic-compile -run $CIRRUS_WORKING_DIR/tests/dynamiccompile/array.d + fi # Run ImportC integration test run_importC_integration_test_script: | cd $CIRRUS_WORKING_DIR/.. @@ -127,10 +146,15 @@ packaging_steps_template: &PACKAGING_STEPS_TEMPLATE else artifactID=${CIRRUS_CHANGE_IN_REPO:0:8} fi - artifactName=ldc2-$artifactID-$CI_OS-x86_64 + artifactName=ldc2-$artifactID-$CI_OS-$CI_ARCH mv installed $artifactName chmod -R go=rX $artifactName - gtar -cf - --owner=0 --group=0 $artifactName | 7z a artifacts/$artifactName.tar.xz -si -txz -mx9 + tar=tar + if [[ "$CI_OS" == "freebsd" ]]; then + tar=gtar + fi + $tar -cf - --owner=0 --group=0 $artifactName | 7z a artifacts/$artifactName.tar.xz -si -txz -mx9 -mmt$PARALLELISM + ls -lh artifacts/ldc2-*.tar.xz # Upload to GitHub release (only for commits on the master branch and tags) upload_to_github_script: | cd $CIRRUS_WORKING_DIR @@ -141,7 +165,7 @@ packaging_steps_template: &PACKAGING_STEPS_TEMPLATE fi # Installs Ubuntu 18.04+ prerequisites. -# Requires env variables HOST_LDC_VERSION, EXTRA_APT_PACKAGES and EXTRA_CMAKE_FLAGS. +# Requires env variables CI_ARCH, HOST_LDC_VERSION, EXTRA_APT_PACKAGES and EXTRA_CMAKE_FLAGS. install_ubuntu_prerequisites_template: &INSTALL_UBUNTU_PREREQUISITES_TEMPLATE install_prerequisites_script: | cd $CIRRUS_WORKING_DIR/.. @@ -162,7 +186,7 @@ install_ubuntu_prerequisites_template: &INSTALL_UBUNTU_PREREQUISITES_TEMPLATE $EXTRA_APT_PACKAGES python3 --version # Download & extract host LDC - curl -fL --retry 3 --max-time 300 -o ldc2.tar.xz https://github.com/ldc-developers/ldc/releases/download/v$HOST_LDC_VERSION/ldc2-$HOST_LDC_VERSION-linux-x86_64.tar.xz + curl -fL --retry 3 --max-time 300 -o ldc2.tar.xz https://github.com/ldc-developers/ldc/releases/download/v$HOST_LDC_VERSION/ldc2-$HOST_LDC_VERSION-linux-$CI_ARCH.tar.xz mkdir host-ldc tar -xf ldc2.tar.xz --strip 1 -C host-ldc rm ldc2.tar.xz @@ -205,6 +229,7 @@ install_macos_prerequisites_template: &INSTALL_MACOS_PREREQUISITES_TEMPLATE environment: CIRRUS_CLONE_DEPTH: 50 HOST_LDC_VERSION: 1.24.0 + GITHUB_TOKEN: ENCRYPTED[0955bd48c8d4e5391446fc0149d0719ad0b63df27ec9e6c180a5730a5b10dc7f28f09d1383423db158d21380ee2b022a] task: name: Ubuntu 18.04 x64 multilib rtSanitizers @@ -214,6 +239,7 @@ task: memory: 16G timeout_in: 20m environment: + CI_ARCH: x86_64 CI_OS: linux EXTRA_APT_PACKAGES: "llvm-9-dev libclang-common-9-dev" EXTRA_CMAKE_FLAGS: "-DMULTILIB=ON -DRT_SUPPORT_SANITIZERS=ON -DBUILD_LTO_LIBS=ON" @@ -231,6 +257,7 @@ task: memory: 16G timeout_in: 15m environment: + CI_ARCH: x86_64 CI_OS: linux EXTRA_APT_PACKAGES: "gdmd llvm-dev libclang-common-15-dev" EXTRA_CMAKE_FLAGS: "-DBUILD_SHARED_LIBS=ON -DBUILD_LTO_LIBS=ON -DD_COMPILER=gdmd -DLDC_LINK_MANUALLY=ON" @@ -248,6 +275,7 @@ task: memory: 16G timeout_in: 15m environment: + CI_ARCH: x86_64 CI_OS: linux HOST_LDC_VERSION: 1.9.0 EXTRA_APT_PACKAGES: "llvm-9-dev libclang-common-9-dev" @@ -290,6 +318,75 @@ task: << : *INSTALL_MACOS_PREREQUISITES_TEMPLATE << : *COMMON_STEPS_TEMPLATE +task: + name: Ubuntu 18.04 aarch64 + arm_container: + image: ubuntu:18.04 + cpu: 4 + memory: 8G + timeout_in: 60m + environment: + CI_ARCH: aarch64 + CI_OS: linux + EXTRA_APT_PACKAGES: libxml2-dev p7zip-full + EXTRA_CMAKE_FLAGS: >- + -DBUILD_LTO_LIBS=ON + -DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto" + -DEXTRA_CXXFLAGS=-flto=full + -DCMAKE_EXE_LINKER_FLAGS=-static-libstdc++ + -DJITRT_EXTRA_LDFLAGS=-static-libstdc++ + -DLDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH=aarch64 + -DLLVM_ROOT_DIR=$CIRRUS_WORKING_DIR/../llvm + -DD_COMPILER=$CIRRUS_WORKING_DIR/../bootstrap-ldc/bin/ldmd2 + PARALLELISM: 4 + LLVM_VERSION: 14.0.3 + CLANG_VERSION: 14.0.0 + CC: $CIRRUS_WORKING_DIR/../clang/bin/clang + CXX: $CIRRUS_WORKING_DIR/../clang/bin/clang++ + << : *INSTALL_UBUNTU_PREREQUISITES_TEMPLATE + # Download & extract LDC-flavoured LLVM + download_prebuilt_llvm_script: | + cd $CIRRUS_WORKING_DIR/.. + assertsSuffix="" + if [[ "${CIRRUS_TAG:-}" == "" ]]; then + echo 'Using LLVM with enabled assertions' + assertsSuffix="-withAsserts" + fi + llvm_tag="CI" + if [[ "$LLVM_VERSION" = *.* ]]; then llvm_tag="ldc-v$LLVM_VERSION"; fi + llvm_url="https://github.com/ldc-developers/llvm-project/releases/download/$llvm_tag/llvm-$LLVM_VERSION-linux-$CI_ARCH$assertsSuffix.tar.xz" + curl -fL --retry 3 --max-time 300 -o llvm.tar.xz $llvm_url + mkdir -p llvm + tar -xf llvm.tar.xz --strip 1 -C llvm + rm llvm.tar.xz + # Make lld the default linker (possibly with enabled assertions unfortunately) + ln -sf "$PWD/llvm/bin/ld.lld" /usr/bin/ld + # Download & extract clang + download_prebuilt_clang_script: | + cd $CIRRUS_WORKING_DIR/.. + curl -fL --retry 3 --max-time 300 -o clang.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-$CLANG_VERSION/clang+llvm-$CLANG_VERSION-$CI_ARCH-linux-gnu.tar.xz + mkdir clang + tar -xf clang.tar.xz --strip 1 -C clang + rm clang.tar.xz + clone_submodules_early_script: | + cd $CIRRUS_WORKING_DIR + git submodule update --init --depth $CIRRUS_CLONE_DEPTH + # Build a first LDC as host compiler for the actual build + build_bootstrap_ldc_script: | + cd $CIRRUS_WORKING_DIR/.. + mkdir bootstrap-ldc + cd bootstrap-ldc + cmake -G Ninja $CIRRUS_WORKING_DIR \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_ROOT_DIR=$PWD/../llvm \ + -DD_COMPILER=$PWD/../host-ldc/bin/ldmd2 \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_LTO_LIBS=ON + ninja -j$PARALLELISM + bin/ldc2 -version + << : *COMMON_STEPS_TEMPLATE + << : *PACKAGING_STEPS_TEMPLATE + task: name: FreeBSD 12.2 x64 freebsd_instance: @@ -298,10 +395,13 @@ task: memory: 8G timeout_in: 60m environment: + CI_ARCH: x86_64 CI_OS: freebsd - EXTRA_CMAKE_FLAGS: -DBUILD_LTO_LIBS=ON -DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto" -DEXTRA_CXXFLAGS=-flto=full + EXTRA_CMAKE_FLAGS: >- + -DBUILD_LTO_LIBS=ON + -DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto" + -DEXTRA_CXXFLAGS=-flto=full PARALLELISM: 4 - GITHUB_TOKEN: ENCRYPTED[0955bd48c8d4e5391446fc0149d0719ad0b63df27ec9e6c180a5730a5b10dc7f28f09d1383423db158d21380ee2b022a] # use clang from the `llvm` ports package to be installed, incl. lld support for .deplibs (`pragma(lib, "execinfo")`) CC: clang90 install_prerequisites_script: | @@ -311,7 +411,7 @@ task: python3 --version python3 -m ensurepip # Download & extract host LDC - curl -fL --retry 3 --max-time 300 -o ldc2.tar.xz https://github.com/ldc-developers/ldc/releases/download/v$HOST_LDC_VERSION/ldc2-$HOST_LDC_VERSION-freebsd-x86_64.tar.xz + curl -fL --retry 3 --max-time 300 -o ldc2.tar.xz https://github.com/ldc-developers/ldc/releases/download/v$HOST_LDC_VERSION/ldc2-$HOST_LDC_VERSION-freebsd-$CI_ARCH.tar.xz mkdir pre-ldc gtar -xf ldc2.tar.xz --strip 1 -C pre-ldc clone_submodules_early_script: | diff --git a/.gitattributes b/.gitattributes index 37d841b1e00..541d9048556 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,5 +2,4 @@ *.sh eol=lf .gitattributes export-ignore -.travis.yml export-ignore CHANGELOG.md text merge=union diff --git a/.github/actions/upload-to-github/action.yml b/.github/actions/upload-to-github/action.yml index 220935e2997..cd06b6be243 100644 --- a/.github/actions/upload-to-github/action.yml +++ b/.github/actions/upload-to-github/action.yml @@ -46,7 +46,7 @@ runs: ls -lh # Extend by existing release artifacts *missing* from GitHub workflow, - # e.g., artifacts published by Travis/Cirrus CI etc. + # e.g., artifacts published by Cirrus CI etc. # (They will be re-uploaded in the next step.) if [[ -d ../existing-artifacts ]]; then mv -n ../existing-artifacts/*.* ./ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ac4c707840c..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,226 +0,0 @@ -os: linux -dist: bionic -arch: arm64 -language: d -d: ldc-1.27.1 - -env: - global: - - LLVM_VERSION: 14.0.3 - - CLANG_VERSION: 14.0.0 - - OPTS: '"-DBUILD_LTO_LIBS=ON -DCMAKE_EXE_LINKER_FLAGS=-static-libstdc++ -DJITRT_EXTRA_LDFLAGS=-static-libstdc++ -DLDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH=aarch64"' - - secure: "WfMv0kOqVU8+SgZUrwgzvzGvFbZvPmeIqrDJ+sotbzEtDeCcMuZmj/+8VuysXzpShXx/FxCoopWpAz30pedES8anGR3ciZruVPPsi22rOR5IBHuSnbamkmF11eQgRaDcj6GvZL7QeWLHBx6EN+C+mQFEVqRrD5avCO/K0RqWTD4=" - -git: - depth: 50 - -addons: - apt: - packages: - - gdb - - ninja-build - - p7zip-full - -install: - - nproc - - free - # Download & extract newer CMake version (required by mimalloc) - - curl -fL --retry 3 --max-time 300 -o cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.25.2/cmake-3.25.2-linux-aarch64.tar.gz - - mkdir cmake_bin - - tar -xf cmake.tar.gz --strip 1 -C cmake_bin - - rm cmake.tar.gz - - export PATH="$PWD/cmake_bin/bin:$PATH" - # Install lit - - python3 -m pip install --user setuptools wheel - - python3 -m pip install --user lit - - | - set -o pipefail - python3 -c "import lit.main; lit.main.main();" --version . | head -n 1 - # Download & extract LDC-flavoured LLVM - - | - assertsSuffix="" - if [[ "$TRAVIS_TAG" == "" ]]; then - echo 'Using LLVM with enabled assertions' - assertsSuffix="-withAsserts" - fi - llvm_tag="CI" - if [[ "$LLVM_VERSION" = *.* ]]; then llvm_tag="ldc-v$LLVM_VERSION"; fi - llvm_url="https://github.com/ldc-developers/llvm-project/releases/download/$llvm_tag/llvm-$LLVM_VERSION-linux-aarch64$assertsSuffix.tar.xz" - curl -fL --retry 3 --max-time 300 -o llvm.tar.xz $llvm_url || travis_terminate 1 - mkdir -p llvm || travis_terminate 1 - tar -xf llvm.tar.xz --strip 1 -C llvm || travis_terminate 1 - rm llvm.tar.xz || travis_terminate 1 - # Make lld the default linker (possibly with enabled assertions unfortunately) - - sudo ln -sf "$PWD/llvm/bin/ld.lld" /usr/bin/ld - # Download & extract clang - - curl -fL --retry 3 --max-time 300 -o clang.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-$CLANG_VERSION/clang+llvm-$CLANG_VERSION-aarch64-linux-gnu.tar.xz - - mkdir clang - - tar -xf clang.tar.xz --strip 1 -C clang - - rm clang.tar.xz - - export CC="$PWD/clang/bin/clang" - - export CXX="$PWD/clang/bin/clang++" - -script: - - unset LD_LIBRARY_PATH - - cmake --version - - ninja --version - # Build bootstrap LDC - - mkdir bootstrap-ldc - - cd bootstrap-ldc - - | - cmake -G Ninja .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ROOT_DIR="$PWD/../llvm" \ - -DBUILD_SHARED_LIBS=OFF \ - -DCOMPILE_D_MODULES_SEPARATELY=ON \ - -DCOMPILE_ALL_D_FILES_AT_ONCE=OFF \ - -DLDC_LINK_MANUALLY=OFF \ - -DBUILD_LTO_LIBS=ON \ - || travis_terminate 1 - - ninja -j8 - - bin/ldc2 -version || travis_terminate 1 - - cd .. - # Build mimalloc (object file only) - - curl -fL --retry 3 --max-time 60 -o mimalloc.tar.gz "https://github.com/microsoft/mimalloc/archive/refs/tags/$(cat packaging/mimalloc_version).tar.gz" - - mkdir mimalloc - - tar -xf mimalloc.tar.gz --strip 1 -C mimalloc - - mkdir build-mimalloc - - cd build-mimalloc - - cmake -G Ninja ../mimalloc - - ninja mimalloc-obj - - ls -lh CMakeFiles/mimalloc-obj.dir/src/static.c.o - - cd .. - # Build LDC & LDC D unittests & defaultlib unittest runners - - mkdir build - - cd build - - | - set -x - installDir="$(dirname "$PWD")/install" - cmake -G Ninja .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ROOT_DIR="$PWD/../llvm" \ - -DD_COMPILER="$PWD/../bootstrap-ldc/bin/ldmd2" \ - -DCMAKE_INSTALL_PREFIX="$installDir" \ - -DINCLUDE_INSTALL_DIR="$installDir/import" \ - -DLDC_LINK_MANUALLY=OFF \ - -DALTERNATIVE_MALLOC_O="$PWD/../build-mimalloc/CMakeFiles/mimalloc-obj.dir/src/static.c.o" \ - -DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto" \ - -DEXTRA_CXXFLAGS=-flto=full \ - $OPTS \ - || travis_terminate 1 - set +x - - | - # Work around out-of-memory errors - retry with decreasing jobs - targets='all ldc2-unittest' - ninja -j8 -k0 $targets || \ - ninja -j4 -k0 $targets || \ - ninja -j1 $targets || travis_terminate 1 - targets='all-test-runners' - ninja -j4 -k0 $targets || \ - ninja -j2 -k0 $targets || \ - ninja -j1 $targets || travis_terminate 1 - - bin/ldc2 -version || travis_terminate 1 - # Run LDC D unittests - - ctest --output-on-failure -R "ldc2-unittest" - # Run LIT testsuite - # FIXME: the following tests fail - - rm ../tests/debuginfo/nested_gdb.d - - rm ../tests/sanitizers/fuzz_basic.d - # FIXME: the following 2 have regressed with LLVM 13 - - rm ../tests/sanitizers/msan_noerror.d - - rm ../tests/sanitizers/msan_uninitialized.d - - ctest -V -R "lit-tests" - # Run DMD testsuite - - DMD_TESTSUITE_MAKE_ARGS="-j8" ctest -V -R "dmd-testsuite" - # Run defaultlib unittests & druntime integration tests - # FIXME: - # * don't exclude hanging core.thread.fiber & druntime-test-gc (probably concurrent-GC tests) - # * don't ignore errors - - ctest -j8 --output-on-failure -E "dmd-testsuite|lit-tests|ldc2-unittest|^core.thread.fiber($|-)|^druntime-test-gc" || true - # Terminate the job if there were failures - - if [[ "$TRAVIS_TEST_RESULT" != "0" ]]; then travis_terminate 1; fi - # Install LDC & make portable - - ninja install > /dev/null - - cd .. - - perl -pi -e "s?$PWD/install/?%%ldcbinarypath%%/../?g" install/etc/ldc2.conf - - cat install/etc/ldc2.conf - - cp LICENSE install - - cp packaging/README install - # Now rename the installation dir to test portability - - mv install installed - # Run hello-world integration test with shared libs - - echo 'void main() { import std.stdio; writefln("Hello world, %d bits", size_t.sizeof * 8); }' > hello.d - - installed/bin/ldc2 hello.d -of=hello -link-defaultlib-shared - - ./hello - # Run hello-world integration test with LTO - - installed/bin/ldc2 hello.d -of=hello_thin -flto=thin -defaultlib=phobos2-ldc-lto,druntime-ldc-lto - - ./hello_thin - - installed/bin/ldc2 hello.d -of=hello_full -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto - - ./hello_full - # Run dynamic-compile integration test - # FIXME: disabled since LLVM 12, needs https://github.com/ldc-developers/ldc/pull/3184 - #- installed/bin/ldc2 -enable-dynamic-compile -run tests/dynamiccompile/array.d - # Run ImportC integration test - - installed/bin/ldc2 -run tests/dmd/runnable/test22597.c - # Build & copy dub - - export DMD="$PWD/installed/bin/ldmd2" - - git clone --recursive https://github.com/dlang/dub.git - - cd dub - - git checkout "$(cat ../packaging/dub_version)" - - $DMD -run build.d -O -w -linkonce-templates - - cp bin/dub ../installed/bin - - cd .. - - installed/bin/dub --version - # Build & copy dlang tools - - git clone --recursive https://github.com/dlang/tools.git dlang-tools - - cd dlang-tools - - git checkout "$(cat ../packaging/dlang-tools_version)" - - mkdir bin - - $DMD -w -de -dip1000 rdmd.d -of=bin/rdmd - - $DMD -w -de -dip1000 ddemangle.d -of=bin/ddemangle - - $DMD -w -de -dip1000 DustMite/dustmite.d DustMite/splitter.d DustMite/polyhash.d -of=bin/dustmite - - cp bin/{rdmd,ddemangle,dustmite} ../installed/bin - - cd .. - # Build & copy reggae - - git clone --recursive https://github.com/atilaneves/reggae.git - - cd reggae - - git checkout "$(cat ../packaging/reggae_version)" - - DFLAGS="-O -linkonce-templates" ../installed/bin/dub build -v --build-mode=allAtOnce --combined - - cp bin/reggae ../installed/bin - - cd .. - - installed/bin/reggae --version -b ninja - # Pack installation dir - - | - if [[ "${TRAVIS_TAG:-}" == v* ]]; then - artifactID=${TRAVIS_TAG:1} - else - artifactID=${TRAVIS_COMMIT:0:8} - fi - artifactName=ldc2-$artifactID-linux-aarch64 - mv installed $artifactName || travis_terminate 1 - artifact=$artifactName.tar.xz - tar -cf - $artifactName | 7za a $artifact -si -txz -mx9 -mmt8 || travis_terminate 1 - ls -lh $artifact || travis_terminate 1 - # Upload to GitHub release (only for commits on the master branch and tags) - - | - if [[ "$TRAVIS_TEST_RESULT" == "0" ]]; then - if [[ "${TRAVIS_TAG:-}" == v* ]]; then - tools/upload-to-github.sh $TRAVIS_TAG ldc2-*.tar.xz || travis_terminate 1 - elif [[ "${TRAVIS_TAG:-}" = "" && "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" = "master" ]]; then - tools/upload-to-github.sh CI ldc2-*.tar.xz || travis_terminate 1 - fi - fi - -notifications: - email: - recipients: - - "digitalmars-d-ldc@puremagic.com" - on_success: never - on_failure: change - irc: - channels: - - "irc.freenode.org#ldc" - on_success: always - on_failure: always - use_notice: false - skip_join: true diff --git a/README.md b/README.md index 28cf5881756..390a1409f04 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ LDC – the LLVM-based D Compiler [![Build status](https://img.shields.io/cirrus/github/ldc-developers/ldc/master?label=Cirrus%20CI&logo=Cirrus%20CI)][4] [![Build status](https://img.shields.io/github/actions/workflow/status/ldc-developers/ldc/main.yml?branch=master&label=GitHub%20Actions%20%28main%29&logo=github)][7] [![Build status](https://img.shields.io/github/actions/workflow/status/ldc-developers/ldc/supported_llvm_versions.yml?branch=master&label=GitHub%20Actions%20%28LLVM%29&logo=github)][7] -[![Build status](https://img.shields.io/travis/com/ldc-developers/ldc/master?label=Travis%20CI&logo=Travis)][5] [![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=283332)][6] The LDC project provides a portable D programming language compiler @@ -118,7 +117,6 @@ Feedback of any kind is very much appreciated! [2]: https://app.bitrise.io/app/1b36e52cf09e5308 [3]: https://circleci.com/gh/ldc-developers/ldc/tree/master [4]: https://cirrus-ci.com/github/ldc-developers/ldc/master -[5]: https://travis-ci.com/github/ldc-developers/ldc/branches [6]: https://www.bountysource.com/teams/ldc-developers/issues [7]: https://github.com/ldc-developers/ldc/actions?query=branch%3Amaster [8]: https://github.com/ldc-developers/ldc/releases