Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.9 KiB
Newer Older
variables:
Raymond Toy's avatar
Raymond Toy committed
  download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/2020/04"
  version: "2020-04-x86"
  bootstrap: ""
Raymond Toy's avatar
Raymond Toy committed
stages:
  - install
  - build
  - test
  - benchmark

cache:


linux:install:
  stage: install
Raymond Toy's avatar
Raymond Toy committed
  artifacts:
    paths:
      - snapshot/
  script:
    - wget -nv $download_url/cmucl-$version-linux.tar.bz2
    - wget -nv $download_url/cmucl-$version-linux.extra.tar.bz2
Raymond Toy's avatar
Raymond Toy committed
    - mkdir snapshot
    - (cd snapshot; tar xjf ../cmucl-$version-linux.tar.bz2; tar xjf ../cmucl-$version-linux.extra.tar.bz2)
Raymond Toy's avatar
Raymond Toy committed

linux:build:
  stage: build
  tags:
    - linux
  artifacts:
    paths:
      - dist/
  needs:
    - job: linux:install
      artifacts: true
Raymond Toy's avatar
Raymond Toy committed
  script:
    # Do cross compile first
    - bin/create-target.sh xtarget x86_linux_clang
    - bin/create-target.sh xcross x86_linux_clang
    - bin/cross-build-world.sh -crl -B boot-2020-04-1 xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp snapshot/bin/lisp
    # Regular build using the cross-compiled result
    - bin/build.sh $bootstrap -R -C "" -o xtarget/lisp/lisp
Raymond Toy's avatar
Raymond Toy committed
    - bin/make-dist.sh -I dist linux-4
Raymond Toy's avatar
Raymond Toy committed

linux:test:
  stage: test
  tags:
    - linux
  artifacts:
    paths:
      - ansi-test/test.out
      - test.log
  needs:
    # Needs artifacts from build (dist/)
    - job: linux:build
      artifacts: true
  before_script:
    - git clone https://gitlab.common-lisp.net/ansi-test/ansi-test.git
    - (cd ansi-test; git checkout rtoy-cmucl-expected-failures)
  script:
Raymond Toy's avatar
Raymond Toy committed
    - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
    - cd ansi-test
    - make LISP="../dist/bin/lisp -batch -noinit -nositeinit"
Raymond Toy's avatar
Raymond Toy committed
    - grep 'No unexpected \(successes\|failures\)' test.out
Raymond Toy's avatar
Raymond Toy committed

linux:benchmark:
  stage: benchmark
  tags:
    - linux
  artifacts:
    paths:
      - benchmarks/cl-bench/results
  needs:
    # Needs artifacts from install (snapshot/) and build (dist/)
    - job: linux:install
      artifacts: true
    - job: linux:build
  script:
    - cd benchmarks/cl-bench
Raymond Toy's avatar
Raymond Toy committed
    - mkdir tmp
    - CMUCL=../../snapshot/bin/lisp ./run-cmucl.sh
    - CMUCL=../../dist/bin/lisp ./run-cmucl.sh
    - ../../snapshot/bin/lisp -load report
Raymond Toy's avatar
Raymond Toy committed

Raymond Toy's avatar
Raymond Toy committed
osx:install:
  stage: install
Raymond Toy's avatar
Raymond Toy committed
  tags:
    - osx
Raymond Toy's avatar
Raymond Toy committed
  artifacts:
    paths:
      - snapshot/
  script:
    - curl -s -o cmucl-$version-darwin.tar.bz2 $download_url/cmucl-$version-darwin.tar.bz2
    - mkdir snapshot
    - (cd snapshot; tar xjf ../cmucl-$version-darwin.tar.bz2)
Raymond Toy's avatar
Raymond Toy committed

osx:build:
  stage: build
  tags:
    - osx
  artifacts:
    paths:
      - dist/
  needs:
    - job: osx:install
      artifacts: true
Raymond Toy's avatar
Raymond Toy committed
  script:
    # Do cross compile first
    - bin/create-target.sh xtarget x86_darwin
    - bin/create-target.sh xcross x86_darwin
    - bin/cross-build-world.sh -crl -B boot-2020-04-1 xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp snapshot/bin/lisp
    # Regular build using the cross-compiled result
    - bin/build.sh $bootstrap -R -C "" -o xtarget/lisp/lisp
Raymond Toy's avatar
Raymond Toy committed
    - bin/make-dist.sh -I dist darwin-4
Raymond Toy's avatar
Raymond Toy committed

osx:test:
  stage: test
  tags:
    - osx
  artifacts:
    paths:
      - ansi-test/test.out
      - test.log
  needs:
    # Needs artifacts from build (dist/)
    - job: osx:build
      artifacts: true
  before_script:
    - git clone https://gitlab.common-lisp.net/ansi-test/ansi-test.git
    - (cd ansi-test; git checkout rtoy-cmucl-expected-failures)
  script:
Raymond Toy's avatar
Raymond Toy committed
    - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
    - cd ansi-test
    - make LISP="../dist/bin/lisp -batch -noinit -nositeinit"
    - grep 'No unexpected \(successes\|failures\)' test.out 
Raymond Toy's avatar
Raymond Toy committed

osx:benchmark:
  stage: benchmark
  tags:
    - osx
  artifacts:
    paths:
      - benchmarks/cl-bench/results
  needs:
    # Needs artifacts from install (snapshot/) and build (dist/)
    - job: osx:install
      artifacts: true
    - job:  osx:build
  script:
    - cd benchmarks/cl-bench
Raymond Toy's avatar
Raymond Toy committed
    - mkdir tmp
    - CMUCL=../../snapshot/bin/lisp ./run-cmucl.sh
    - CMUCL=../../dist/bin/lisp ./run-cmucl.sh
    - ../../snapshot/bin/lisp -load report