version: 2.0
jobs:
ure:
docker:
- image: $CIRCLE_PROJECT_USERNAME/opencog-deps
user: root
environment:
CCACHE_DIR: /ws/ccache
working_directory: /ws/ure
steps:
- attach_workspace:
at: /ws
- run:
name: Start restoring ccache
command: date +%d-%m-%Y > /tmp/date
- restore_cache:
keys:
- ccache-{{ checksum "/tmp/date" }}
- ccache-
- run:
name: Install CogUtil
command: |
git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/cogutil /ws/cogutil
mkdir -p /ws/cogutil/build
cd /ws/cogutil/build && cmake .. && make -j2 && make -j2 install
ldconfig
- run:
name: Checkout AtomSpace
command: git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/atomspace /ws/atomspace
- restore_cache:
name: Restore GHC Cache
keys:
- ghc-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{ arch }}
- restore_cache:
name: Restore Haskell Deps Cache
keys:
- haskelldeps-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{checksum "/ws/atomspace/opencog/haskell/opencog-atomspace.cabal"}}-{{ arch }}
- run:
name: Install AtomSpace
command: |
mkdir -p /ws/atomspace/build
cd /ws/atomspace/build && cmake .. && make -j2 && make -j2 install
ldconfig
- save_cache:
name: Save GHC Cache
key: ghc-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{ arch }}
paths:
- /root/.stack
- save_cache:
name: Save Haskell Deps Cache
key: haskelldeps-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{checksum "/ws/atomspace/opencog/haskell/opencog-atomspace.cabal"}}-{{ arch }}
paths:
- /ws/atomspace/opencog/haskell/.stack-work
- run:
name: Install Unify
command: |
git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/unify /ws/unify
mkdir -p /ws/unify/build
cd /ws/unify/build && cmake .. && make -j2 && make -j2 install
ldconfig
- checkout
- run:
name: CMake Configure
command: mkdir build && cd build && cmake ..
- run:
name: Build
command: cd build && make -j2
- run:
name: Build tests
command: cd build && make -j2 tests
- run:
name: Run tests
command: cd build && make -j2 check ARGS=-j2
- run:
name: Install URE
command: cd build && make -j2 install && ldconfig
- run:
name: Print test log
command: cat build/tests/Testing/Temporary/LastTest.log
when: always
- persist_to_workspace:
root: /ws/
paths:
- cogutil
- atomspace
- unify
- ure
- ccache
miner:
docker:
- image: $CIRCLE_PROJECT_USERNAME/opencog-deps
user: root
environment:
CCACHE_DIR: /ws/ccache
working_directory: /ws/miner
steps:
- attach_workspace:
at: /ws/
- restore_cache:
name: Restore GCH Cache
keys:
- ghc-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{ arch }}
- restore_cache:
name: Restore Haskell Deps Cache
keys:
- haskelldeps-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{checksum "/ws/atomspace/opencog/haskell/opencog-atomspace.cabal"}}-{{ arch }}
- run:
name: Install cogutil
command: cd /ws/cogutil/build && make -j2 install && ldconfig
- run:
name: Install AtomSpace
command: cd /ws/atomspace/build && make -j2 install && ldconfig
- run:
name: Install Unify
command: cd /ws/unify/build && make -j2 install && ldconfig
- run:
name: Install URE
command: cd /ws/ure/build && make -j2 install && ldconfig
- run:
name: Checkout Miner
command: git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/miner .
- run:
name: CMake Configure
command: mkdir build && cd build && cmake ..
- run:
name: Build
command: cd build && make -j2
- run:
name: Build tests
command: cd build && make -j2 tests
- run:
name: Run tests
command: cd build && make -j2 check ARGS=-j2
- run:
name: Print test log
command: cat build/tests/Testing/Temporary/LastTest.log
when: always
- persist_to_workspace:
root: /ws/
paths:
- miner
- ccache
spacetime:
docker:
- image: $CIRCLE_PROJECT_USERNAME/opencog-deps
user: root
environment:
CCACHE_DIR: /ws/ccache
working_directory: /ws/spacetime
steps:
- attach_workspace:
at: /ws/
- run:
name: Install CogUtil
command: cd /ws/cogutil/build && make -j2 install && ldconfig
- run:
name: Install AtomSpace
command: cd /ws/atomspace/build && make -j2 install && ldconfig
- run:
name: Checkout SpaceTime
command: git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/spacetime .
- run:
name: CMake Configure
command: mkdir build && cd build && cmake ..
- run:
name: Build
command: cd build && make -j2
- run:
name: Build tests
command: cd build && make -j2 tests
- run:
name: Run tests
command: cd build && make -j2 check ARGS=-j2
- run:
name: Install spacetime
command: cd build && make -j2 install && ldconfig
- run:
name: Print test log
command: cat build/tests/Testing/Temporary/LastTest.log
when: always
- persist_to_workspace:
root: /ws/
paths:
- spacetime
# See https://github.com/opencog/cogutil/commit/da53c4079c3972904857a365a7761ac5923e4e92
# - ccache
pln:
docker:
- image: $CIRCLE_PROJECT_USERNAME/opencog-deps
user: root
environment:
CCACHE_DIR: /ws/ccache
working_directory: /ws/pln
steps:
- attach_workspace:
at: /ws/
- restore_cache:
name: Restore GCH Cache
keys:
- ghc-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{ arch }}
- restore_cache:
name: Restore Haskell Deps Cache
keys:
- haskelldeps-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{checksum "/ws/atomspace/opencog/haskell/opencog-atomspace.cabal"}}-{{ arch }}
- run:
name: Install cogutil
command: cd /ws/cogutil/build && make -j2 install && ldconfig
- run:
name: Install AtomSpace
command: cd /ws/atomspace/build && make -j2 install && ldconfig
- run:
name: Install Unify
command: cd /ws/unify/build && make -j2 install && ldconfig
- run:
name: Install URE
command: cd /ws/ure/build && make -j2 install && ldconfig
- run:
name: Install SpaceTime
command: cd /ws/spacetime/build && make -j2 install && ldconfig
- run:
name: Checkout PLN
command: git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/pln .
- run:
name: CMake Configure
command: mkdir build && cd build && cmake ..
- run:
name: Build
command: cd build && make -j2
- run:
name: Build tests
command: cd build && make -j2 tests
- run:
name: Install PLN
command: cd build && make -j2 install && ldconfig
- run:
name: Run tests
command: cd build && make -j2 check ARGS=-j2
- run:
name: Print test log
command: cat build/tests/Testing/Temporary/LastTest.log
when: always
- persist_to_workspace:
root: /ws/
paths:
- pln
- ccache
opencog:
docker:
- image: $CIRCLE_PROJECT_USERNAME/opencog-deps
user: root
environment:
CCACHE_DIR: /ws/ccache
working_directory: /ws/opencog
steps:
- attach_workspace:
at: /ws/
- restore_cache:
name: Restore GCH Cache
keys:
- ghc-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{ arch }}
- restore_cache:
name: Restore Haskell Deps Cache
keys:
- haskelldeps-{{checksum "/ws/atomspace/opencog/haskell/stack.yaml"}}-{{checksum "/ws/atomspace/opencog/haskell/opencog-atomspace.cabal"}}-{{ arch }}
- run:
name: Install cogutil
command: cd /ws/cogutil/build && make -j2 install && ldconfig
- run:
name: Install AtomSpace
command: cd /ws/atomspace/build && make -j2 install && ldconfig
- run:
name: Install Unify
command: cd /ws/unify/build && make -j2 install && ldconfig
- run:
name: Install URE
command: cd /ws/ure/build && make -j2 install && ldconfig
- run:
name: Checkout AtomSpace Storage
command: |
git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/atomspace-storage /ws/atomspace-storage
mkdir -p /ws/atomspace-storage/build
cd /ws/atomspace-storage/build && cmake .. && make -j2 && make -j2 install
ldconfig
- run:
name: Checkout LG-Atomese
command: |
git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/lg-atomese /ws/lg-atomese
mkdir -p /ws/lg-atomese/build
cd /ws/lg-atomese/build && cmake .. && make -j2 && make -j2 install
ldconfig
- run:
name: Checkout OpenCog
command: git clone --depth 1 https://github.com/$CIRCLE_PROJECT_USERNAME/opencog .
- run:
name: CMake Configure
command: mkdir build && cd build && cmake ..
- run:
name: Build
command: cd build && make -j2
- run:
name: Build tests
command: cd build && make -j2 tests
- run:
name: Run tests
command: cd build && make -j2 check ARGS=-j2
- run:
name: Install OpenCog
command: cd build && make -j2 install && ldconfig
- run:
name: Print test log
command: cat build/tests/Testing/Temporary/LastTest.log
when: always
- persist_to_workspace:
root: /ws/
paths:
- opencog
- ccache
package: #Place holder
docker:
- image: $CIRCLE_PROJECT_USERNAME/opencog-deps
user: root
working_directory: /ws/ure
steps:
- attach_workspace:
at: /ws/
- run:
name: Start storing ccache
command: date +%d-%m-%Y > /tmp/date
- save_cache:
key: ccache-{{ checksum "/tmp/date" }}
paths:
- /ws/ccache
workflows:
version: 2
build-test-package:
jobs:
- ure
- miner:
requires:
- ure
- spacetime:
requires:
# spacetime does not actually depend on ure;
# we just fake it to get it built.
# - atomspace
- ure
- pln:
requires:
- ure
- spacetime
- opencog:
requires:
- ure
- package:
requires:
- opencog
filters:
branches:
only: master