From 5e2bafa40c14f56865c78c762fc20dfd03a4a12d Mon Sep 17 00:00:00 2001
From: Taylor Smock <tsmock@fb.com>
Date: Tue, 6 Apr 2021 08:25:42 -0600
Subject: [PATCH 1/2] Initial GitLab CI

Signed-off-by: Taylor Smock <tsmock@fb.com>
---
 .gitlab-ci.yml       | 11 +++++++
 .gitlab/pipeline.yml | 74 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+)
 create mode 100644 .gitlab-ci.yml
 create mode 100644 .gitlab/pipeline.yml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..80445b9f0
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,11 @@
+include:
+  local: ".gitlab/pipeline.yml"
+
+build:
+  stage: build
+  trigger:
+    include: .gitlab/pipeline.yml
+  parallel:
+    matrix:
+      - JAVA_VERSION: [11, 16, 17-ea]
+      #- ARCHITECTURE: [amd64] # openjdk archs include arm64v8 and windows-amd64. Mac builds would probably have to be separate.
diff --git a/.gitlab/pipeline.yml b/.gitlab/pipeline.yml
new file mode 100644
index 000000000..b9aaa86d8
--- /dev/null
+++ b/.gitlab/pipeline.yml
@@ -0,0 +1,74 @@
+variables:
+  IVY_CACHE_DIR: "$CI_PROJECT_DIR/.cache/ivy"
+  JAVA_VERSION: 8
+
+cache:
+  paths:
+    - .cache/
+    - tools/
+
+build-dist:
+  image: registry.gitlab.com/smocktaylor/josm/openjdk/ant:$JAVA_VERSION
+  stage: deploy
+  script:
+    - $ANT_HOME/bin/ant -Divy.home="$IVY_CACHE_DIR" dist-optimized-report distmac distwin javadoc taginfo
+  interruptible: true
+  artifacts:
+    public: true
+    paths: ["build/dist/"]
+
+
+build-java:
+  image: registry.gitlab.com/smocktaylor/josm/openjdk/ant:$JAVA_VERSION
+  stage: build
+  script:
+    - $ANT_HOME/bin/ant -Divy.home="$IVY_CACHE_DIR" clean dist
+  interruptible: true
+  artifacts:
+    paths:
+      - "build"
+
+test-java:
+  image: registry.gitlab.com/smocktaylor/josm/openjdk/ant:$JAVA_VERSION
+  stage: test
+  script:
+    - $ANT_HOME/bin/ant -Divy.home="$IVY_CACHE_DIR" -Dtest.headless=true test
+  interruptible: true
+  artifacts:
+    public: true
+    reports:
+      junit:
+        - "test/report/TEST-*.xml"
+
+pmd-java:
+  image: registry.gitlab.com/smocktaylor/josm/openjdk/ant:$JAVA_VERSION
+  stage: test
+  script:
+    - $ANT_HOME/bin/ant -Divy.home="$IVY_CACHE_DIR" pmd
+  interruptible: true
+  artifacts:
+    public: true
+    paths:
+      - "tools/pmd/cache"
+
+checkstyle-java:
+  image: registry.gitlab.com/smocktaylor/josm/openjdk/ant:$JAVA_VERSION
+  stage: test
+  script:
+    - $ANT_HOME/bin/ant -Divy.home="$IVY_CACHE_DIR" checkstyle
+  interruptible: true
+  artifacts:
+    public: true
+    paths:
+      - "checkstyle-josm.xml"
+
+spotbugs-java:
+  image: registry.gitlab.com/smocktaylor/josm/openjdk/ant:$JAVA_VERSION
+  stage: test
+  script:
+    - $ANT_HOME/bin/ant -Divy.home="$IVY_CACHE_DIR" spotbugs
+  interruptible: true
+  artifacts:
+    public: true
+    paths:
+      - "spotbugs-josm.xml"
-- 
2.31.1

