From 31e327cafec1e3130f09709c5957d1fc9bcec746 Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Mon, 28 Dec 2020 09:58:24 +0200
Subject: [PATCH] Common usage patterns.

- GitLab CI templates.
- Common pre-commit Docker snippet.
---
 .gitlab-ci.yml               |  9 +++----
 .pre-commit-config.yaml      | 48 ++++++++++++++++++++++++++++++++++++
 Dockerfile                   |  2 ++
 README.md                    | 16 ++++++------
 test.bats => tests/test.bats |  0
 5 files changed, 61 insertions(+), 14 deletions(-)
 create mode 100644 .pre-commit-config.yaml
 rename test.bats => tests/test.bats (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 68a146f..ab65b9a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,4 @@
 ---
-test:
-  image: alpine:3.12
-  before_script:
-    - apk add --update docker bats
-  script:
-    - bats .
+include:
+  - project: shore/ci-templates
+    file: templates/bats.yml
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000..13d68fd
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,48 @@
+---
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks.git
+    rev: v3.4.0
+    hooks:
+      - id: check-added-large-files
+      - id: check-executables-have-shebangs
+      - id: check-merge-conflict
+      - id: check-symlinks
+      - id: trailing-whitespace
+
+  - repo: https://github.com/Yelp/detect-secrets
+    rev: v0.14.3
+    hooks:
+      - id: detect-secrets
+
+  - repo: https://github.com/adrienverge/yamllint
+    rev: v1.25.0
+    hooks:
+      - id: yamllint
+
+  - repo: https://github.com/amperser/proselint/
+    rev: 0.10.2
+    hooks:
+      - id: proselint
+        types: [plain-text]
+        exclude: LICENSE
+
+  - repo: https://github.com/executablebooks/mdformat.git
+    rev: 0.5.3
+    hooks:
+      - id: mdformat
+
+  - repo: https://git.shore.co.il/nimrod/shell-pre-commit.git
+    rev: v0.6.0
+    hooks:
+      - id: shell-lint
+
+  - repo: https://github.com/shellcheck-py/shellcheck-py.git
+    rev: v0.7.1.1
+    hooks:
+      - id: shellcheck
+
+  - repo: https://git.shore.co.il/nimrod/docker-pre-commit.git/
+    rev: v0.3.0
+    hooks:
+      - id: hadolint
+      - id: docker-compose
diff --git a/Dockerfile b/Dockerfile
index 5851d39..7cc54ff 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,7 @@
 ARG image
+# hadolint ignore=DL3006
 FROM ${image}
+# hadolint ignore=DL3018,DL4001
 RUN apk add --update --no-cache openssl || true && \
     wget https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64 || \
     curl -fsSL https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64 -o gosu-amd64 && \
diff --git a/README.md b/README.md
index 051faf1..af44b03 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,19 @@
 # Docker runas test
 
- [![pipeline status](https://git.shore.co.il/nimrod/docker-runas-test/badges/master/pipeline.svg)](https://git.shore.co.il/nimrod/docker-runas-test/-/commits/master) 
+[![pipeline status](https://git.shore.co.il/nimrod/docker-runas-test/badges/master/pipeline.svg)](https://git.shore.co.il/nimrod/docker-runas-test/-/commits/master)
 
 > A test suite for the runas Docker entrypoint.
-See [here](https://www.shore.co.il/blog/docker_uid/) for more info.
+> See [here](https://www.shore.co.il/blog/docker_uid/) for more info.
 
 ## Requirements
 
 - [Bats](https://github.com/sstephenson/bats)
-- [Docker](https://www.docker.com) 
+- [Docker](https://www.docker.com)
 
 ## Usage
 
 ```
-bats test.bats
+bats tests/
 ```
 
 ## License
@@ -22,7 +22,7 @@ This software is licensed under the MIT license (see `LICENSE.txt`).
 
 ## Author Information
 
-Nimrod Adar, [contact me](mailto:nimrod@shore.co.il) or visit my [website](
-https://www.shore.co.il/). Patches are welcome via [`git send-email`](
-http://git-scm.com/book/en/v2/Git-Commands-Email). The repository is located
-at: <https://git.shore.co.il/explore/>.
+Nimrod Adar, [contact me](mailto:nimrod@shore.co.il) or visit my
+[website](https://www.shore.co.il/). Patches are welcome via
+[`git send-email`](http://git-scm.com/book/en/v2/Git-Commands-Email). The repository
+is located at: <https://git.shore.co.il/expore/>.
diff --git a/test.bats b/tests/test.bats
similarity index 100%
rename from test.bats
rename to tests/test.bats
-- 
GitLab