Skip to content
Snippets Groups Projects
.gitlab-ci.yml 4.77 KiB
Newer Older
variables:
  download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/2021/07"
  version: "2021-07-x86"
  bootstrap: "-B boot-2021-07-1 -B boot-2021-07-2"
Raymond Toy's avatar
Raymond Toy committed
stages:
  - install
  - build
  - test
Raymond Toy's avatar
Raymond Toy committed
  - 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/
      - linux-2/*.log
      - linux-3/*.log
      - linux-4/*.log
Raymond Toy's avatar
Raymond Toy committed
  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 or snapshot
    - bin/build.sh $bootstrap -R -C "x86_linux_clang" -o snapshot/bin/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
  script:
    - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log

linux:ansi-test:
  stage: ansi-test
  tags:
    - linux
  artifacts:
    paths:
      - ansi-test/test.out
  needs:
    # Needs artifacts from build (dist/)
    - job: linux:build
      artifacts: true
Raymond Toy's avatar
Raymond Toy committed
  before_script:
    - git clone https://gitlab.common-lisp.net/cmucl/ansi-test.git
Raymond Toy's avatar
Raymond Toy committed
    - (cd ansi-test; git checkout rtoy-cmucl-expected-failures)
  script:
    - cd ansi-test
    - make LISP="../dist/bin/lisp -batch -noinit -nositeinit"
    # There should be no unexpected successes or failures; check these separately.
    - grep -a 'No unexpected successes' test.out && grep -a 'No unexpected 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:
    - /opt/local/bin/curl -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/
      - darwin-2/*.log
      - darwin-3/*.log
      - darwin-4/*.log
Raymond Toy's avatar
Raymond Toy committed
  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 or snapshot
    - bin/build.sh $bootstrap -R -C "" -o snapshot/bin/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:
      - test.log
  needs:
    # Needs artifacts from build (dist/)
    - job: osx:build
      artifacts: true
  script:
    - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log

osx:ansi-test:
  stage: ansi-test
  tags:
    - osx
  artifacts:
    paths:
      - ansi-test/test.out
  needs:
    # Needs artifacts from build (dist/)
    - job: osx:build
      artifacts: true
Raymond Toy's avatar
Raymond Toy committed
  before_script:
    - /opt/local/bin/git clone https://gitlab.common-lisp.net/cmucl/ansi-test.git
    - (cd ansi-test; /opt/local/bin/git checkout rtoy-cmucl-expected-failures)
Raymond Toy's avatar
Raymond Toy committed
  script:
    - cd ansi-test
    - make LISP="../dist/bin/lisp -batch -noinit -nositeinit"
    # There should be no unexpected successes or failures; check these separately.
    - grep -a 'No unexpected successes' test.out && grep -a 'No unexpected 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