diff --git a/.circleci/config.yml b/.circleci/config.yml index 357fdeaf3c8b5640e2493d7f94f481c9a54e7033..8cc2ac50d95f3d1ae8936fa8b45aac9077e19c3c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,6 +15,8 @@ compile_gcc: &compile_gcc ln -s $DIR/cmake-3.10.2-Linux-x86_64/bin/cmake /usr/bin/cmake ln -s $DIR/cmake-3.10.2-Linux-x86_64/bin/cpack /usr/bin/cpack ln -s $DIR/cmake-3.10.2-Linux-x86_64/bin/ctest /usr/bin/ctest + apt-get update + apt-get install zip - run: name: Init submodules command: | @@ -32,6 +34,15 @@ compile_gcc: &compile_gcc command: | cd build ctest --verbose -C MinSizeRel + - run: + name: Deploy + command: | + export GCC_MACHINE=$(gcc -dumpmachine) + export GCC_VERSION=$(gcc -dumpversion) + export GITHUB_REPO_TAG=$(git describe) + cd install && zip -r "../rew-$GITHUB_REPO_TAG-$GCC_MACHINE-$GCC_VERSION.zip" * && cd .. + chmod +x ./publish.sh + ./publish.sh rew-$GITHUB_REPO_TAG-$GCC_MACHINE-$GCC_VERSION.zip $GITHUB_REPO_TAG version: 2 jobs: @@ -59,6 +70,58 @@ jobs: docker: - image: gcc:8.2.0 +build_docs: + docker: + - image: circleci/python:3.6 + steps: + - checkout + - run: + name: Init dependencies + command: | + sudo apt install doxygen + git clone https://github.com/matusnovak/doxybook.git + cd doxybook + sudo python setup.py install + + - run: + name: Build + command: | + chmod +x ./doxygen/make.sh + ./doxygen/make.sh + mkdir /tmp/doxygen + cp -v ./doxygen/*.md /tmp/doxygen + + - persist_to_workspace: + root: /tmp + paths: + - doxygen + + upload_docs: + docker: + - image: circleci/node:9 + steps: + - attach_workspace: + at: /tmp + - checkout + - run: + name: Init dependencies + command: | + sudo npm install -g vuepress + npm install + + - run: + name: Build + command: | + cp -v /tmp/doxygen/*.md ./doxygen + vuepress build + + - run: + name: Deploy + command: | + git config --global user.email "GITHUB_USER_EMAIL" + git config --global user.name "GITHUB_USER_NAME" + npm run publish + workflows: version: 2 build_and_test: @@ -73,3 +136,17 @@ workflows: - compile_gcc_820: requires: - compile_gcc_730 + - build_docs: + requires: + - compile_gcc_730 + filters: + branches: + only: + - master + - upload_docs: + requires: + - build_docs + filters: + branches: + only: + - master diff --git a/gh-pages.js b/gh-pages.js new file mode 100644 index 0000000000000000000000000000000000000000..c690bd9ef0af88ae28a2d643251aa02fca668513 --- /dev/null +++ b/gh-pages.js @@ -0,0 +1,11 @@ +const ghpages = require("gh-pages") + +console.log("Publishing to GH Pages") +ghpages.publish('.vuepress/dist', { + repo: 'https://' + process.env.GITHUB_TOKEN + '@github.com/matusnovak/mn00272-com3001-final-year-project.git' +}, function (err) { + if (err) { + console.log(err) + process.exit(1) + } +}) diff --git a/package.json b/package.json new file mode 100644 index 0000000000000000000000000000000000000000..113748505bbf3ab98b0bfa9f5bfd469339c21604 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "mn00272-com3001-final-year-project", + "version": "1.0.0", + "description": "", + "repository": { + "url": "git@git@github.com:matusnovak/mn00272-com3001-final-year-project.git", + "type": "git" + }, + "scripts": { + "publish": "node gh-pages.js" + }, + "author": "matusnovak", + "license": "MIT", + "devDependencies": { + "gh-pages": "^2.0.1" + } +} + \ No newline at end of file