Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -10,6 +10,7 @@ stages:
    10 10
       - test
    
    11 11
       - ansi-test
    
    12 12
       - benchmark
    
    13
    +  - analyze
    
    13 14
     
    
    14 15
     cache:
    
    15 16
     
    
    ... ... @@ -36,7 +37,7 @@ linux:build:
    36 37
           - dist/
    
    37 38
           - linux-2/*.log
    
    38 39
           - linux-3/*.log
    
    39
    -      - linux-4/*.log
    
    40
    +      - linux-4/
    
    40 41
       needs:
    
    41 42
         - job: linux:install
    
    42 43
           artifacts: true
    
    ... ... @@ -45,8 +46,10 @@ linux:build:
    45 46
         #- bin/create-target.sh xtarget x86_linux_clang
    
    46 47
         #- bin/create-target.sh xcross x86_linux_clang
    
    47 48
         #- bin/cross-build-world.sh -crl -B boot-2020-04-1 xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp snapshot/bin/lisp
    
    48
    -    # Regular build using the cross-compiled result or snapshot
    
    49
    -    - bin/build.sh $bootstrap -R -C "x86_linux_clang" -o snapshot/bin/lisp
    
    49
    +    # Regular build using the cross-compiled result or snapshot.  The
    
    50
    +    # analyzer job requires gcc, so make sure we build with gcc here
    
    51
    +    # instead of clang. 
    
    52
    +    - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
    
    50 53
         # - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
    
    51 54
         # Use -V to specify the version in case some tag makes git
    
    52 55
         # describe return something that make-dist.sh doesn't like.
    
    ... ... @@ -62,6 +65,8 @@ linux:cross-build:
    62 65
           - linux-2/*.log
    
    63 66
           - linux-3/*.log
    
    64 67
           - linux-4/*.log
    
    68
    +      # The lisp directory is needed for the static analyzer job.
    
    69
    +      - linux-4/lisp
    
    65 70
       needs:
    
    66 71
     
    
    67 72
         # Normally need the linux:install stage to get the compiler to
    
    ... ... @@ -232,3 +237,24 @@ osx:benchmark:
    232 237
         - CMUCL=../../snapshot/bin/lisp ./run-cmucl.sh
    
    233 238
         - CMUCL=../../dist/bin/lisp ./run-cmucl.sh
    
    234 239
         - ../../snapshot/bin/lisp -load report
    
    240
    +
    
    241
    +# Optional job that runs the static analyzer.  It needs the files from
    
    242
    +# the linux-4 directory built in the linux:build job.
    
    243
    +linux:static-analyzer:
    
    244
    +  stage: analyze
    
    245
    +  when: manual
    
    246
    +  tags:
    
    247
    +    - linux
    
    248
    +  artifacts:
    
    249
    +    paths:
    
    250
    +      - analyzer.log
    
    251
    +  needs:
    
    252
    +    - job: linux:build
    
    253
    +      artifacts: true
    
    254
    +  script:
    
    255
    +    # Analysis can generate huge amounts of output.  For now just save
    
    256
    +    # the results to the log file instead of also having it go to the
    
    257
    +    # console.  If someday there's less or no output, we can consider
    
    258
    +    # having the logs go to the console too.
    
    259
    +    - make -C linux-4/lisp clean
    
    260
    +    - make -C linux-4/lisp CFLAGS=-fanalyzer > analyzer.log 2>&1