# Copyright (C) 2017-2020 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # # GNU Emacs is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # GNU Emacs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . # GNU Emacs support for the GitLab protocol for CI # The presence of this file does not imply any FSF/GNU endorsement of # any particular service that uses that protocol. Also, it is intended for # evaluation purposes, thus possibly temporary. # Maintainer: Ted Zlatanov # URL: https://emba.gnu.org/emacs/emacs image: debian:stretch variables: GIT_STRATEGY: fetch EMACS_EMBA_CI: 1 before_script: - apt update -qq - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev git stages: - test # FIXME: Commented for this branch till is known to be broken. # test-all: # # This tests also file monitor libraries inotify and inotifywatch. # stage: test # only: # changes: # - "Makefile.in" # - .gitlab-ci.yml # - aclocal.m4 # - autogen.sh # - configure.ac # - lib/*.{h,c} # - lisp/*.el # - lisp/**/*.el # - src/*.{h,c} # - test/lisp/*.el # - test/lisp/**/*.el # - test/src/*.el # except: # changes: # # gfilemonitor, kqueue # - src/gfilenotify.c # - src/kqueue.c # # MS Windows # - lisp/w32*.el # - lisp/term/w32*.el # - src/w32*.{h,c} # # GNUstep # - lisp/term/ns-win.el # - src/ns*.{h,m} # - src/macfont.{h,m} # script: # - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 inotify-tools # - ./autogen.sh autoconf # - ./configure --without-makeinfo # - make bootstrap # - make check-expensive test-filenotify-gio: stage: test # This tests file monitor libraries gfilemonitor and gio. ## Commented to keep stock bootstrap tested. # only: # changes: # - .gitlab-ci.yml # - lisp/autorevert.el # - lisp/filenotify.el # - lisp/net/tramp-sh.el # - src/gfilenotify.c # - test/lisp/autorevert-tests.el # - test/lisp/filenotify-tests.el script: - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libglib2.0-dev libglib2.0-bin libglib2.0-0 - ./autogen.sh autoconf - ./configure --without-makeinfo --with-file-notification=gfile - make bootstrap - make -C test autorevert-tests filenotify-tests test-native-bootstrap-speed0: # Test a full native bootstrap # Run for now only speed 0 to limit memory usage and compilation time. stage: test # Uncomment the following to run it only when sceduled. # only: # - schedules script: - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libgccjit-6-dev - ./autogen.sh autoconf - ./configure --without-makeinfo --with-nativecomp - make bootstrap NATIVE_FULL_AOT=1 BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 0)"' -j2 timeout: 8 hours test-native-bootstrap-speed1: stage: test script: - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libgccjit-6-dev - ./autogen.sh autoconf - ./configure --without-makeinfo --with-nativecomp - make bootstrap BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 1)"' timeout: 8 hours test-native-bootstrap-speed2: stage: test script: - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 libgccjit-6-dev - ./autogen.sh autoconf - ./configure --without-makeinfo --with-nativecomp - make bootstrap timeout: 8 hours test-gnustep: stage: test # This tests the GNUstep build process only: changes: - .gitlab-ci.yml - configure.ac - src/ns*.{h,m} - src/macfont.{h,m} - lisp/term/ns-win.el - nextstep/**/* script: - DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y -qq -o=Dpkg::Use-Pty=0 gnustep-devel - ./autogen.sh autoconf - ./configure --without-makeinfo --with-ns - make bootstrap - make install