diff --git a/.circleci/config.yml b/.circleci/config.yml index 65717c7..10b5d47 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,11 +3,7 @@ version: 2 defaults: &defaults working_directory: /tmp/project docker: - - image: walberla/buildenv-ubuntu-clang:4.0 - environment: - CIRCLE_BUILD_IMAGE: ubuntu - ATOM_CHANNEL: stable - DISPLAY: :99 + - image: arcanemagus/atom-docker-ci:stable jobs: checkout_code: @@ -41,11 +37,10 @@ jobs: at: /tmp - run: name: Update APT - command: apt-get update - # Install some pre-requisite packages and missing dependencies from the atom package + command: sudo apt-get update - run: - name: Atom Prerequisites - command: apt-get --assume-yes --quiet --no-install-suggests --no-install-recommends install sudo xvfb libxss1 libasound2 + name: Install Clang + command: sudo apt-get --assume-yes --quiet --no-install-suggests --no-install-recommends install clang-4.0 # Fire up a VFB to run Atom in - run: name: Create VFB for Atom to run in @@ -62,19 +57,17 @@ jobs: beta: <<: *defaults - environment: - ATOM_CHANNEL: beta + image: arcanemagus/atom-docker-ci:beta steps: # Restore project state - attach_workspace: at: /tmp - run: name: Update APT - command: apt-get update - # Install some pre-requisite packages and missing dependencies from the atom package + command: sudo apt-get update - run: - name: Atom Prerequisites - command: apt-get --assume-yes --quiet --no-install-suggests --no-install-recommends install sudo xvfb libxss1 libasound2 + name: Install Clang + command: sudo apt-get --assume-yes --quiet --no-install-suggests --no-install-recommends install clang-4.0 # Fire up a VFB to run Atom in - run: name: Create VFB for Atom to run in @@ -84,6 +77,22 @@ jobs: name: Atom test command: ./build-package.sh + + release: + <<: *defaults + steps: + # Restore project state + - attach_workspace: + at: /tmp + - run: + name: semantic-release + command: npx semantic-release + # Cache node_modules + - save_cache: + paths: + - node_modules + key: v2-dependencies-{{ checksum "package.json" }} + workflows: version: 2 test_package: @@ -95,3 +104,9 @@ workflows: - beta: requires: - checkout_code + - release: + requires: + - stable + filters: + branches: + only: master diff --git a/package.json b/package.json index 57d23a3..e703a60 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ } }, "scripts": { + "commitmsg": "commitlint -e $GIT_PARAMS", "test": "apm test", "lint": "eslint ." }, @@ -64,6 +65,12 @@ "clang-flags": "^0.2.2" }, "devDependencies": { + "@commitlint/cli": "^6.1.3", + "@commitlint/config-conventional": "^6.1.3", + "@commitlint/travis-cli": "^6.1.3", + "@semantic-release/apm-config": "^2.0.1", + "husky": "^0.14.3", + "semantic-release": "^15.1.7", "eslint": "^4.6.0", "eslint-config-airbnb-base": "^12.0.0", "eslint-plugin-import": "^2.7.0", @@ -92,5 +99,13 @@ "browser": true, "node": true } + }, + "release": { + "extends": "@semantic-release/apm-config" + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] } -} +} \ No newline at end of file