variables:
NEO4J_AUTH: none
+ POSTGRES_HOST_AUTH_METHOD: trust
cache:
paths:
- 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
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:
# 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:
- benchmarks/*.gnu
when: always
+nitunit_manual:
+ stage: more_test
+ dependencies:
+ - build_tools
+ script:
+ - nitunit doc/manual/*.nit
+ - junit2html nitunit.xml
+ artifacts:
+ paths:
+ - nitunit.xml*
+ when: always
+ reports:
+ junit:
+ - nitunit.xml
# MORE TOOLS ########################################################
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
- benchmarks/bench_old.sh
allow_failure: true # time is unreliable. manual check required
services: []
+
+build_tools_windows:
+ stage: build
+ before_script:
+ - date
+ after_script:
+ - date
+ tags:
+ - windows
+ script:
+ - $project_dir = "$CI_PROJECT_DIR" -replace "\\", "\\\"
+ - $converted_project_dir = $(c:\msys64\usr\bin\bash -l -c "cygpath -u $project_dir")
+ - c:\msys64\usr\bin\env MSYSTEM=MINGW64 c:\msys64\usr\bin\bash -l -c "cd $converted_project_dir; make"