- git config --add github.oauthtoken "$GITHUB_OAUTHTOKEN" # needed for github api rate limit
- pwd
- ccache -s
+ - ccache -z
- ccache -M 500M
- du -sh .gradle || true
- type -a nitc nitdoc || true # is there some nit tools?
- export CCACHE_DIR=$PWD/.ccache
- ccache -s
- du -sh .gradle || true
- - git status --ignored
+ - git status --ignored || true
- date
- tail status.txt
- misc/jenkins/checksignedoffby.sh | tee -a status.txt
- misc/jenkins/checklicense.sh | tee -a status.txt
-build_tools:
+build_tools: &build_tools
stage: build
script:
- make 2>> status.txt
- src/nitc_0
when: always
-test_some:
+test_some: &test_some
stage: test
dependencies:
- build_tools
dependencies:
- build_tools
script:
- - git diff --name-only origin/master..HEAD -- "*.nit" "*.res" "README.*" | grep -v "^tests/" > list0.txt || true
+ - git diff --name-only origin/master..HEAD -- "*.nit" "*.res" "README.*" | grep -v "^tests/\|contrib/" > list0.txt || true
- xargs nitls -pP < list0.txt > list.txt
+ - test -s list.txt || exit 0
- xargs nitunit < list.txt
- junit2html nitunit.xml
artifacts:
# TEST FULL #########################################################
-test_full_nitcs:
+test_full_nitcs: &test_full_nitcs
stage: more_test
dependencies:
- build_tools
script:
+ - share/android-bdwgc/setup.sh
- cd tests
- ./testfull.sh | tee log.txt
- grep -v '=>' log.txt > ../status.txt || true
# MISC ##############################################################
+check_requirments:
+ stage: more_test
+ image: debian:buster
+ before_script:
+ - date # cancel the default `before_script`, an empty list does nothing
+ script: # from the README
+ - apt-get update && apt-get install --yes --no-install-recommends build-essential ccache libgc-dev libunwind-dev pkg-config
+ - make
+ - bin/nitc examples/hello_world.nit
+ - ./hello_world
+ - . misc/nit_env.sh install
+ - nitc examples/hello_world.nit
+ - ./hello_world
+ - apt-get update && apt-get install --yes --no-install-recommends graphviz libcurl4-openssl-dev libevent-dev libmongoc-dev
+ - make more
+
bootstrap_full:
stage: more_test
dependencies:
paths:
- nitdoc.out
+build_manual:
+ stage: more_test
+ script:
+ - apt-get update && apt-get install --yes --no-install-recommends pandoc texlive texlive-latex-extra lmodern
+ - make -C doc/manual
+ artifacts:
+ paths:
+ - doc/manual/*.pdf
+ - doc/manual/*.epub
+
nitmetrics:
stage: more_test
dependencies:
- build_more_tools
script:
- - nitmetrics --all --log --log-dir nitmetrics.out --dir nitmetrics.out --keep-going lib src
+ - mkdir -p nitmetrics.out
+ - nitmetrics --all --log --log-dir nitmetrics.out --dir nitmetrics.out --keep-going lib src | tee nitmetrics.out/metrics.txt
artifacts:
paths:
- nitmetrics.out
- ./oot.sh pre-build
- cd ..
- nitcatalog -d catalog.out lib/ examples/ contrib/ contrib/oot/
- dependencies:
- - build_more_tools
artifacts:
paths:
- catalog.out
-.test_macos:
- script:
- - uname
- - pwd
- - ls /
- stage: build
+build_tools_macos:
+ <<: *build_tools
+ tags:
+ - macos
+
+test_some_macos:
+ <<: *test_some
tags:
- macos
+ dependencies:
+ - build_tools_macos
+
+test_full_nitcs_macos:
+ <<: *test_full_nitcs
+ tags:
+ - macos
+ dependencies:
+ - build_tools_macos
+
+bench_old:
+ stage: more_test
+ tags:
+ - perf
+ dependencies:
+ - build_tools
+ script:
+ - benchmarks/bench_old.sh
+ allow_failure: true # time is unreliable. manual check required
+ services: []