-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
105 lines (94 loc) · 4.42 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# This file is a template, and might need editing before it works on your project.
---
# Build JAVA applications using Apache Maven (http://maven.apache.org)
# For docker image tags see https://hub.docker.com/_/maven/
#
# For general lifecycle information see https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
#
# This template will build and test your projects as well as create the documentation.
#
# * Caches downloaded dependencies and plugins between invocation.
# * Does only verify merge requests but deploy built artifacts of the
# master branch.
# * Shows how to use multiple jobs in test stage for verifying functionality
# with multiple JDKs.
# * Uses site:stage to collect the documentation for multi-module projects.
# * Publishes the documentation for `master` branch.
variables:
# This will supress any download for dependencies and plugins or upload messages which would clutter the console log.
# `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
# MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true --add-modules java.xml.bind,java.xml.ws.annotation"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
# As of Maven 3.3.0 instead of this you may define these options in `.mvn/maven.config` so the same config is used
# when running from the command line.
# `installAtEnd` and `deployAtEnd`are only effective with recent version of the corresponding plugins.
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
# Cache downloaded dependencies and plugins between builds.
# To keep cache across branches add 'key: "$CI_JOB_REF_NAME"'
cache:
paths:
- .m2/repository
# This will only validate and compile stuff and run e.g. maven-enforcer-plugin.
# Because some enforcer rules might check dependency convergence and class duplications
# we use `test-compile` here instead of `validate`, so the correct classpath is picked up.
.validate: &validate
stage: build
script:
- 'git clone https://github.com/anddann/soot.git'
- 'git clone https://anddann@bitbucket.org/anddann/doop.git'
- 'cd doop && git checkout ModGuard'
- './gradlew publishToMavenLocal'
- 'cd ..'
- 'cp -r ~/.m2/ /builds/adann/jdk_escape_analysis'
#- 'mvn install:install-file -Dfile=asm-debug-all-6.1.0.jar -DgeneratePom=true -DgroupId=org.ow2.asm -DartifactId=asm-debug-all -Dversion=6.1.0 -Dpackaging=jar'
- 'mvn $MAVEN_CLI_OPTS test-compile'
tags:
- shared
# For merge requests do not `deploy` but only run `verify`.
# See https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
.verify: &verify
stage: test
script:
# - 'ln -s $JAVA_HOME/lib $JAVA_HOME/conf'
# - 'git clone https://github.com/anddann/soot.git'
#- 'mvn install:install-file -Dfile=asm-debug-all-6.1.0.jar -DgeneratePom=true -DgroupId=org.ow2.asm -DartifactId=asm-debug-all -Dversion=6.1.0 -Dpackaging=jar'
- 'mvn $MAVEN_CLI_OPTS -Dmaven.test.skip=true verify'
except:
- master
tags:
- shared
# Validate merge requests using JDK8
validate:jdk8:
<<: *validate
image: maven:3.5.0-jdk-8
tags:
- shared
# Verify merge requests using JDK8
# un comment for now
#verify:jdk8:
# <<: *verify
# image: maven:3.5.0-jdk-8
# tags:
# - shared
build:maven:
stage: build
image: maven:3.5.0-jdk-8
script:
#- 'ln -s $JAVA_HOME/lib $JAVA_HOME/conf'
#- 'mvn install:install-file -Dfile=asm-debug-all-6.1.0.jar -DgeneratePom=true -DgroupId=org.ow2.asm -DartifactId=asm-debug-all -Dversion=6.1.0 -Dpackaging=jar'
- 'git clone https://github.com/anddann/soot.git'
- 'git clone https://anddann@bitbucket.org/anddann/doop.git'
- 'cd doop && git checkout ModGuard'
- './gradlew publishToMavenLocal'
- 'cd ..'
- 'cp -r ~/.m2/ /builds/adann/jdk_escape_analysis'
- 'mvn $MAVEN_CLI_OPTS -Dmaven.test.skip=true compile package '
tags:
- shared
artifacts:
name: "soot-module-analysis-$CI_BUILD_ID-$CI_BUILD_REF"
expire_in: 1 week
paths:
- soot/target/*.jar
- soot-module-analysis/target/*.jar
- soot-infoflow/target/*.jar