diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b4ad35f3facae6d58e36a88a6559e4e98f1a1369..454f843d8cb84a3181232fd7ee068af763ef2dde 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -151,3 +151,67 @@ release: include: - template: Code-Quality.gitlab-ci.yml + + +# MacOS tests +# - this job runs on "M1" (arm64) macs +# - its possible to run `arch -x86_64 ...` +# - `gsed` stuff is Issue #112. +macos_tests: + image: macos-12-xcode-14 + tags: + - saas-macos-medium-m1 + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + when: never + - if: $CI_PROJECT_PATH == "gnu-octave/octave-pythonic" + stage: test + needs: [] + variables: + HOMEBREW_NO_AUTO_UPDATE: 1 + HOMEBREW_NO_INSTALL_CLEANUP: 1 + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 + before_script: + - sw_vers + - pwd + - uname -a + - uname -m + - echo $SHELL + # this Python comes from Homebrew + - which python + - python --version + - pip --version + # this Python comes from the OS + - /usr/bin/python3 --version + - /usr/bin/python3 -m pip --version + # (and installing Octave updates the Homebrew one) + - brew --version + - brew install gnu-sed + - brew info octave + - brew install octave + script: + - gcc --version + - clang --version + - octave --version + - make help SED=gsed + - make CXX=clang CXXFLAGS="-std=c++11" SED=gsed + - make check + - octave --eval "pkg install -forge doctest" + - make doctest + - mkdir -p pkg + - make O=pkg dist dist-zip + artifacts: + paths: + - src/fntests.log + when: on_failure + + +# macOS: one can also use Rosetta to emulate x86_64 +# - arch -x86_64 uname -m +# - arch -x86_64 /usr/bin/python3 --version +# - arch -arm64 /usr/bin/python3 --version +# macOS: installing a specific python +# - curl https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg --output python.pkg +# - sudo installer -pkg python.pkg -target / +# - /usr/local/bin/python3 --version +# - arch -x86_64 /usr/local/bin/python3 --version