diff --git a/.circleci/config.yml b/.circleci/config.yml index f37de01a08b..6bf3bbff7ee 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -37,12 +37,56 @@ jobs: - dependency-cache-{{ checksum "package.json" }} - dependency-cache- - run: npm install - - run: npx semantic-release --branch $CIRCLE_BRANCH --dry-run=<< parameters.dry-run >> + - run: | + echo -e "NEW_RELEASE=false" > RELEASE.env # will be overriden if release detected + npx semantic-release --branch $CIRCLE_BRANCH --dry-run=<< parameters.dry-run >> + cat RELEASE.env + # - run: echo -e "NEW_RELEASE=true\nVERSION=1.0.1" > RELEASE.env # force publish docker images at hard-coded version + - persist_to_workspace: + root: ~/project + paths: + - RELEASE.env - save_cache: key: dependency-cache-{{ checksum "package.json" }} paths: - node_modules + publish-docker: + docker: + - image: circleci/buildpack-deps:stretch + environment: + IMAGE_NAME: hackerhappyhour/reveal + steps: + - checkout + - setup_remote_docker + - attach_workspace: + at: ~/project + - run: + name: Build and publish + command: | + cat RELEASE.env + source RELEASE.env # loads VERSION and NEW_RELEASE env vars in to environment + if [ "$NEW_RELEASE" = true ]; then + echo "Building images..." + make build + make build-dev + make build-markdown + echo "Tagging images with version: ${VERSION}..." + docker tag ${IMAGE_NAME}:latest ${IMAGE_NAME}:${VERSION} + docker tag ${IMAGE_NAME}:dev ${IMAGE_NAME}:dev-${VERSION} + docker tag ${IMAGE_NAME}:markdown ${IMAGE_NAME}:markdown-${VERSION} + echo "Publishing images..." + echo "${DOCKERHUB_PASS}" | docker login -u "$DOCKERHUB_USER" --password-stdin + docker push ${IMAGE_NAME}:dev-${VERSION} + docker push ${IMAGE_NAME}:dev + docker push ${IMAGE_NAME}:markdown-${VERSION} + docker push ${IMAGE_NAME}:markdown + docker push ${IMAGE_NAME}:${VERSION} + docker push ${IMAGE_NAME}:latest + else + echo "No new release detected, skipping Docker Hub publish..." + fi + workflows: version: 2 build-and-release: @@ -64,3 +108,10 @@ workflows: branches: only: - master + - publish-docker: + requires: + - release + filters: + branches: + only: + - master diff --git a/Makefile b/Makefile index 655b0b1d78a..c219ecd2abb 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,12 @@ -.PHONY: build markdown +IMAGE_NAME=hackerhappyhour/reveal + +.PHONY: build build-dev build-markdown build: - docker build -f docker/Dockerfile -t hackerhappyhour/reveal:latest ./docker + docker build -f docker/Dockerfile -t ${IMAGE_NAME}:latest ./docker + +build-dev: + docker build -f docker/dev/Dockerfile -t ${IMAGE_NAME}:dev ./docker -markdown: - docker build -f docker/markdown/Dockerfile -t hackerhappyhour/reveal:markdown ./docker +build-markdown: + docker build -f docker/markdown/Dockerfile -t ${IMAGE_NAME}:markdown ./docker diff --git a/docker/Dockerfile b/docker/Dockerfile index 44e866e5c8d..cbd2f326247 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,10 +2,12 @@ FROM node:10 AS builder WORKDIR /reveal -RUN npm install reveal.js +RUN npm install @h3/reveal FROM nginx:1.15 +LABEL source="https://github.com/HackerHappyHour/reveal" + ENV SITE=/usr/share/nginx/html COPY nginx.conf /etc/nginx/ diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile new file mode 100644 index 00000000000..a45605b3ed3 --- /dev/null +++ b/docker/dev/Dockerfile @@ -0,0 +1,16 @@ +FROM node:10 + +LABEL source="https://github.com/HackerHappyHour/reveal" + +RUN cd /tmp \ + && npm install @h3/reveal \ + && mv node_modules/@h3/reveal / \ + && cd /reveal \ + && npm install \ + && npm cache clean --force + +WORKDIR /reveal + +EXPOSE 8000 35729 + +CMD ["npm", "start"] diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml new file mode 100644 index 00000000000..74229cb4969 --- /dev/null +++ b/docker/dev/docker-compose.yml @@ -0,0 +1,12 @@ +# Example docker-compose.yml file implementation +version: '3' +services: + reveal: + image: hackerhappyhour/reveal:dev + ports: + - "8000:8000" + - "35729:35729" # live-reload server + volumes: + - ./index.html:/reveal/index.html + # - ./css/main.css:/reveal/css/main.css + # - ./images:/reveal/images diff --git a/docker/dev/index.html b/docker/dev/index.html new file mode 100644 index 00000000000..98accc3aba7 --- /dev/null +++ b/docker/dev/index.html @@ -0,0 +1,49 @@ + + + + + + + reveal.js + + + + + + + + + + + +
+
+
Slide 1
+
Slide 2
+
+
+ + + + + + + diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 4a1dd173970..a61ac78ae84 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,7 +1,7 @@ version: "3" services: - revealjs: - image: reveal.js + reveal: + image: reveal build: . ports: - "8080:8080" diff --git a/gruntfile.js b/gruntfile.js index f1bd4f33799..ef957c7ade0 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -23,6 +23,7 @@ module.exports = grunt => { args: [ '--no-snadbox', '--disable-setuid-sandbox', + '--disable-dev-shm-usage' ] } }; diff --git a/release.config.js b/release.config.js index 2105dd53e52..2903e1c5584 100644 --- a/release.config.js +++ b/release.config.js @@ -9,7 +9,7 @@ module.exports = { '@semantic-release/git', '@semantic-release/github', ['@semantic-release/exec', { - verifyReleaseCmd: 'echo "VERSION=${nextRelease.version}" > RELEASE.env' + verifyReleaseCmd: 'echo "VERSION=${nextRelease.version}\nNEW_RELEASE=true" > RELEASE.env' }], ], debug: true,