diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9343cd9c8eab124279814c9b6a267cbbfc4a6aba
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,90 @@
+---
+stages:
+  - validate-syntax
+  - test-unit
+  - acceptance-puppet4
+  - acceptance-puppet5
+
+before_script:
+  - pdk --version
+
+pdk_validate:
+  stage: 'validate-syntax'
+  script:
+    - pdk validate
+  tags:
+    - puppet-tests
+
+pdk_test_unit:
+  stage: 'test-unit'
+  script:
+    - pdk test unit
+  tags:
+    - puppet-tests
+
+acceptance_with_puppet4_ubuntu:
+  stage: 'acceptance-puppet4'
+  variables:
+    BEAKER_PUPPET_COLLECTION: 'pc1'
+  script:
+    - pdk bundle exec rake beaker:default
+  tags:
+    - puppet-tests
+  except:
+    - master
+
+acceptance_with_puppet4_debian:
+  stage: 'acceptance-puppet4'
+  variables:
+    BEAKER_PUPPET_COLLECTION: 'pc1'
+  script:
+    - pdk bundle exec rake beaker:debian-82-x64
+  tags:
+    - puppet-tests
+  except:
+    - master
+
+acceptance_with_puppet4_centos:
+  stage: 'acceptance-puppet4'
+  variables:
+    BEAKER_PUPPET_COLLECTION: 'pc1'
+  script:
+    - pdk bundle exec rake beaker:centos-72-x64
+  tags:
+    - puppet-tests
+  except:
+    - master
+
+acceptance_with_puppet5_ubuntu:
+  stage: 'acceptance-puppet5'
+  variables:
+    BEAKER_PUPPET_COLLECTION: 'puppet5'
+  script:
+          - pdk bundle exec rake beaker:default
+  tags:
+    - puppet-tests
+  except:
+    - master
+
+acceptance_with_puppet5_debian:
+  stage: 'acceptance-puppet5'
+  variables:
+    BEAKER_PUPPET_COLLECTION: 'puppet5'
+  script:
+    - pdk bundle exec rake beaker:debian-82-x64
+  tags:
+    - puppet-tests
+  except:
+    - master
+
+acceptance_with_puppet5_centos:
+  stage: 'acceptance-puppet5'
+  variables:
+    BEAKER_PUPPET_COLLECTION: 'puppet5'
+  script:
+    - pdk bundle exec rake beaker:centos-72-x64
+  tags:
+    - puppet-tests
+  except:
+    - master
+
diff --git a/.sync.yml b/.sync.yml
index 0b9dc402649d4c513fd03b2c1b8978cd5352b41c..dbe336e91d8c16e080ee46a3e40f4f7f4a9925cf 100644
--- a/.sync.yml
+++ b/.sync.yml
@@ -4,6 +4,9 @@
 .travis.yml:
   delete: true
 
+.gitlab-ci.yml:
+  unmanaged: true
+
 Gemfile:
   required:
     ':development':