Commit 9dc59bb2 authored by Robert Goldman's avatar Robert Goldman
Browse files

Merge branch 'add-allegro-to-ci' into 'master'

Add allegro to CI

See merge request !204
parents fb52d7cb 284080c1
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ endif


l ?= sbcl
UPCASE_L = $(shell echo '$(l)' | tr '[:lower:]' '[:upper:]')

ABCL ?= abcl
ALLEGRO ?= alisp
@@ -82,6 +83,16 @@ XCL ?= xcl
DOCKER ?= docker
docker_tag ?= latest

DOCKER_IMAGE_ABCL ?= containers.common-lisp.net/cl-docker-images/abcl
DOCKER_IMAGE_ALLEGRO ?= containers.common-lisp.net/cl-docker-images/allegro
DOCKER_IMAGE_ALLEGROMODERN ?= containers.common-lisp.net/cl-docker-images/allegro
DOCKER_IMAGE_CCL ?= containers.common-lisp.net/cl-docker-images/ccl
DOCKER_IMAGE_CLISP ?= containers.common-lisp.net/cl-docker-images/clisp
DOCKER_IMAGE_CMUCL ?= containers.common-lisp.net/cl-docker-images/cmucl
DOCKER_IMAGE_ECL ?= containers.common-lisp.net/cl-docker-images/ecl
DOCKER_IMAGE_ECL_BYTECODES ?= containers.common-lisp.net/cl-docker-images/ecl
DOCKER_IMAGE_SBCL ?= containers.common-lisp.net/cl-docker-images/sbcl

header_lisp := header.lisp
driver_lisp := uiop/package.lisp uiop/common-lisp.lisp uiop/utility.lisp uiop/version.lisp uiop/os.lisp uiop/pathname.lisp uiop/filesystem.lisp uiop/stream.lisp uiop/image.lisp uiop/lisp-build.lisp uiop/launch-program.lisp uiop/run-program.lisp uiop/configuration.lisp uiop/backward-driver.lisp uiop/driver.lisp
defsystem_lisp := upgrade.lisp session.lisp component.lisp operation.lisp system.lisp system-registry.lisp action.lisp lisp-action.lisp find-component.lisp forcing.lisp plan.lisp operate.lisp find-system.lisp parse-defsystem.lisp bundle.lisp concatenate-source.lisp package-inferred-system.lisp output-translations.lisp source-registry.lisp backward-internals.lisp backward-interface.lisp interface.lisp user.lisp footer.lisp
@@ -208,12 +219,17 @@ test-lisp: build/asdf.lisp show-version

t: test-lisp

# Useful for reproducing test failures with Docker.
# Useful for reproducing test failures with Docker. Allegro does not like it if
# the user we're running as has no entry in /etc/passwd. So we make a user
# first and then execute the command as that user.
test-docker-repl:
	@${DOCKER} run --rm -i -t --pull always -u $(shell id -u):$(shell id -g) -v $(sourceDirectory):$(sourceDirectory) -w $(sourceDirectory)/test clfoundation/${l}:${docker_tag}
	@${DOCKER} run --rm -i -t -e I_AGREE_TO_ALLEGRO_EXPRESS_LICENSE=yes -v $(sourceDirectory):$(sourceDirectory) -w $(sourceDirectory)/test $(DOCKER_IMAGE_$(UPCASE_L)):${docker_tag} bash -c "adduser --uid $(shell id -u) --gecos 'ASDF tester' --disabled-password --no-create-home user && su user -c \"$($(UPCASE_L))\""

# Allegro does not like it if the user we're running as has no entry in
# /etc/passwd. So we make a user first and then execute the command as that
# user.
test-docker-lisp: build/asdf.lisp show-version
	@${DOCKER} run --rm -i -t --pull always -u $(shell id -u):$(shell id -g) -v $(sourceDirectory):$(sourceDirectory) -w $(sourceDirectory) clfoundation/${l}:${docker_tag} make test-lisp l=${l} t=${t}
	${DOCKER} run --rm -i -t -e I_AGREE_TO_ALLEGRO_EXPRESS_LICENSE=yes -v $(sourceDirectory):$(sourceDirectory) -w $(sourceDirectory) $(DOCKER_IMAGE_$(UPCASE_L)):${docker_tag} bash -c "adduser --uid $(shell id -u) --gecos 'ASDF tester' --disabled-password --no-create-home user && su user -c \"make test-lisp l=$(l) t=$(t)\""

td: test-docker-lisp

+15 −3
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
variables:
  # Just let the runner fetch and update the submodules for us.
  GIT_SUBMODULE_STRATEGY: normal
  I_AGREE_TO_ALLEGRO_EXPRESS_LICENSE: "yes"

# Split regression testing into a separate stage than upgrade tests. The
# upgrade tests tend to run slower and are generally less important than
@@ -60,6 +61,7 @@ Build docs:
  variables:
    IMAGE_TAG: latest
  script:
    - export l=$l$variant
    - make
    - make test
  artifacts:
@@ -76,8 +78,11 @@ Regression test:
  extends: .Regression test template
  parallel:
    matrix:
      - l: [abcl, ccl, clasp, clisp, cmucl, ecl, sbcl]
      - l: [abcl, allegro, ccl, clasp, clisp, cmucl, ecl, sbcl]
        IMAGE_TAG: latest
      - l: allegro
        IMAGE_TAG: latest
        variant: modern
      - l: abcl
        IMAGE_TAG: 1.7.1-jdk8

@@ -91,6 +96,7 @@ Regression test:
  variables:
    IMAGE_TAG: latest
  script:
    - export l=$l$variant
    - make
    - make test-upgrade
  artifacts:
@@ -105,8 +111,11 @@ Upgrade test:
  extends: .Upgrade test template
  parallel:
    matrix:
      - l: [abcl, ccl, clasp, clisp, cmucl, ecl, sbcl]
      - l: [abcl, allegro, ccl, clasp, clisp, cmucl, ecl, sbcl]
        IMAGE_TAG: latest
      - l: allegro
        IMAGE_TAG: latest
        variant: modern

# No more tests are known to fail. But leave commented out in case it needs to
# be resurrected.
@@ -132,8 +141,11 @@ REQUIRE upgrade test:
    ASDF_UPGRADE_TEST_TAGS: REQUIRE
  parallel:
    matrix:
      - l: [abcl, ccl, clisp, cmucl, ecl, sbcl]
      - l: [abcl, allegro, ccl, clisp, cmucl, ecl, sbcl]
        IMAGE_TAG: latest
      - l: allegro
        IMAGE_TAG: latest
        variant: modern

# No more tests are known to fail. But leave commented out in case it needs to
# be resurrected.
+5 −5
Original line number Diff line number Diff line
@@ -685,7 +685,7 @@
        :unless (or (eql symbol-package package)
                    ;; CLOS related symbols seem to have a different home
                    ;; package in CLISP than COMMON-LISP.
                    (nth-value 1 (find-symbol (symbol-name s) (find-package "COMMON-LISP"))))
                    (nth-value 1 (find-symbol (symbol-name s) (find-package :common-lisp))))
          :collect s))

(defun assert-package-equal (package &key exported-symbols use nicknames shadowing-symbols
@@ -700,7 +700,7 @@

(DBG "Ensure UIOP/PACKAGE is not modified. Add new imports/exports/etc. to UIOP/PACKAGE* instead.")
(assert-package-equal
 "UIOP/PACKAGE"
 :uiop/package
 :exported-symbols '(uiop:find-package* uiop:find-symbol* uiop:symbol-call
                     uiop:intern* uiop:export* uiop:import* uiop:shadowing-import*
                     uiop:shadow* uiop:make-symbol* uiop:unintern* uiop:symbol-shadowing-p
@@ -711,16 +711,16 @@
                     uiop:packages-from-names uiop:fresh-package-name uiop:rename-package-away
                     uiop:package-definition-form uiop:parse-define-package-form uiop:ensure-package
                     uiop:define-package)
 :use (list (find-package "COMMON-LISP")))
 :use (list (find-package :common-lisp)))

#+package-local-nicknames
(DBG "Ensure UIOP/PACKAGE-LOCAL-NICNKAMES is not modified. Add new imports/exports/etc. to UIOP/PACKAGE* instead.")
#+package-local-nicknames
(assert-package-equal
 "UIOP/PACKAGE-LOCAL-NICKNAMES"
 :uiop/package-local-nicknames
 :exported-symbols '(uiop:add-package-local-nickname uiop:remove-package-local-nickname
                     uiop:package-local-nicknames)
 :use (list (find-package "COMMON-LISP"))
 :use (list (find-package :common-lisp))
 :external-non-cl-symbols
 #+allegro '(excl:remove-package-local-nickname excl:package-local-nicknames excl:add-package-local-nickname)
 #+sbcl '(sb-ext:remove-package-local-nickname sb-ext:package-local-nicknames sb-ext:add-package-local-nickname)