Skip to content

Commit 45c5ab6

Browse files
authored
Merge pull request #123 from solidnerd/add-circleci-support
Add circle-ci
2 parents 314fe7c + fee655d commit 45c5ab6

File tree

2 files changed

+111
-0
lines changed

2 files changed

+111
-0
lines changed

.circleci/config.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
version: 2
2+
jobs:
3+
shellcheck:
4+
docker:
5+
- image: nlknguyen/alpine-shellcheck:v0.4.6
6+
steps:
7+
- checkout
8+
- run:
9+
name: Check Docker Hub Hooks
10+
command: |
11+
find hooks -type f | wc -l
12+
find hooks -type f | xargs shellcheck -e SC2086 --external-sources
13+
- run:
14+
name: Check Scripts
15+
command: |
16+
find . -type f -name '*.sh' | wc -l
17+
find . -type f -name '*.sh' | xargs shellcheck -e SC2086 -e SC1090 --external-sources
18+
build:
19+
docker:
20+
- image: circleci/golang:1.11.5
21+
steps:
22+
- checkout
23+
- setup_remote_docker:
24+
docker_layer_caching: true
25+
- run:
26+
name: Create docker image
27+
command: make build
28+
29+
build-deploy:
30+
docker:
31+
- image: circleci/golang:1.11.5
32+
steps:
33+
- checkout
34+
- setup_remote_docker:
35+
docker_layer_caching: true
36+
- run:
37+
name: Create docker image
38+
command: make build
39+
- run:
40+
name: Logg into Docker registry
41+
command: docker login -u $docker_release_user -p $docker_release_password
42+
- run:
43+
name: Publish docker image
44+
command: make push
45+
46+
release:
47+
docker:
48+
- image: circleci/golang:1.11.5
49+
steps:
50+
- checkout
51+
- setup_remote_docker:
52+
docker_layer_caching: true
53+
- run:
54+
name: Login to public Docker HUB
55+
command: |
56+
docker login -u $docker_release_user -p $docker_release_password
57+
make release
58+
59+
workflows:
60+
version: 2
61+
verify:
62+
jobs:
63+
- shellcheck
64+
- build
65+
deploy:
66+
jobs:
67+
- build-deploy:
68+
requires:
69+
- shellcheck
70+
filters:
71+
branches:
72+
only:
73+
- master
74+
release:
75+
jobs:
76+
- release:
77+
filters:
78+
tags:
79+
only: /^([0-9]\d*)\.([0-9]\d*)\.([0-9]\d*).*$/
80+
branches:
81+
ignore: /.*/

Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
DOCKER_RELEASE_REG=solidnerd
2+
DOCKER_IMAGE=bookstack
3+
4+
5+
DOCKER_INTERNAL_TAG := $(shell git rev-parse --short HEAD)
6+
DOCKER_RELEASE_TAG := $(shell git describe)
7+
BUILD_DATE := $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
8+
VCS_URL := https://github.com/solidnerd/docker-bookstack
9+
10+
.PHONY: build push pull release
11+
12+
build:
13+
docker image build . \
14+
-t $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):$(DOCKER_INTERNAL_TAG) \
15+
--build-arg VCS_REF=$(DOCKER_INTERNAL_TAG) \
16+
--build-arg BUILD_DATE=$(BUILD_DATE) \
17+
--build-arg VCS_URL=$(VCS_URL)
18+
19+
push:
20+
docker push $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):$(DOCKER_INTERNAL_TAG)
21+
22+
pull:
23+
docker pull $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):$(DOCKER_INTERNAL_TAG)
24+
25+
release:
26+
docker tag $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):$(DOCKER_INTERNAL_TAG) $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):$(DOCKER_RELEASE_TAG)
27+
docker tag $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):$(DOCKER_INTERNAL_TAG) $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):latest
28+
29+
docker push $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):$(DOCKER_RELEASE_TAG)
30+
docker push $(DOCKER_RELEASE_REG)/$(DOCKER_IMAGE):latest

0 commit comments

Comments
 (0)