# Official language image. Look for the different tagged releases at: # https://hub.docker.com/r/crystallang/crystal/ image: "crystallang/crystal:latest" # Cache shards in between builds cache: paths: - lib - bin before_script: - crystal -v # Print out Crystal version for debugging spec: script: - crystal spec --error-on-warnings --junit_output=. spec/matchers/ spec/spectator/*.cr artifacts: when: always paths: - output.xml reports: junit: output.xml spec docs: extends: spec script: - crystal spec --error-on-warnings --junit_output=. spec/docs/ spec features: extends: spec script: - crystal spec --error-on-warnings --junit_output=. spec/features/ spec regression: extends: spec script: - crystal spec --error-on-warnings --junit_output=. spec/issues/ spec rspec: extends: spec script: - crystal spec --error-on-warnings --junit_output=. spec/rspec/ spec dsl: extends: spec script: - crystal spec --error-on-warnings --junit_output=. spec/spectator/dsl/ spec mocks: extends: spec script: - crystal spec --error-on-warnings --junit_output=. spec/spectator/mocks/ format: script: - shards - crystal tool format --check style: script: - shards - bin/ameba nightly: image: "crystallang/crystal:nightly" allow_failure: true script: - shards --ignore-crystal-version - crystal spec --error-on-warnings --junit_output=. --tag smoke spec/spectator/dsl/ - crystal tool format --check artifacts: when: always paths: - output.xml reports: junit: output.xml pages: stage: deploy dependencies: - spec script: - crystal docs - mv docs/ public/ artifacts: paths: - public only: - master