From 1efd48d61f871d6833158ad18a2a2920bf515d77 Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Tue, 21 Apr 2020 10:32:42 +0200 Subject: circle CI --- .circleci/artifact_path | 1 + .circleci/config.yml | 137 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 .circleci/artifact_path create mode 100644 .circleci/config.yml (limited to '.circleci') diff --git a/.circleci/artifact_path b/.circleci/artifact_path new file mode 100644 index 0000000..aa9acb8 --- /dev/null +++ b/.circleci/artifact_path @@ -0,0 +1 @@ +0/docs/build/html/index.html diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..9701ad1 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,137 @@ +# Tagging a commit with [circle front] will build the front page and perform test-doc. +# Tagging a commit with [circle full] will build everything. +version: 2 +jobs: + build_docs: + docker: + - image: circleci/python:3.7-stretch + steps: + - checkout + - run: + name: Set BASH_ENV + command: | + echo "set -e" >> $BASH_ENV + echo "export DISPLAY=:99" >> $BASH_ENV + echo "export OPENBLAS_NUM_THREADS=4" >> $BASH_ENV + echo "BASH_ENV:" + cat $BASH_ENV + + - run: + name: Merge with upstream + command: | + echo $(git log -1 --pretty=%B) | tee gitlog.txt + echo ${CI_PULL_REQUEST//*pull\//} | tee merge.txt + if [[ $(cat merge.txt) != "" ]]; then + echo "Merging $(cat merge.txt)"; + git remote add upstream git://github.com/PythonOT/POT.git; + git pull --ff-only upstream "refs/pull/$(cat merge.txt)/merge"; + git fetch upstream master; + fi + + # Load our data + - restore_cache: + keys: + - data-cache-0 + - pip-cache + + - run: + name: Spin up Xvfb + command: | + /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1400x900x24 -ac +extension GLX +render -noreset; + + # https://github.com/ContinuumIO/anaconda-issues/issues/9190#issuecomment-386508136 + # https://github.com/golemfactory/golem/issues/1019 + - run: + name: Fix libgcc_s.so.1 pthread_cancel bug + command: | + sudo apt-get install qt5-default + + - run: + name: Get Python running + command: | + python -m pip install --user --upgrade --progress-bar off pip + python -m pip install --user --upgrade --progress-bar off -r requirements.txt + python -m pip install --user --upgrade --progress-bar off -r docs/requirements.txt + python -m pip install --user --upgrade --progress-bar off ipython "https://api.github.com/repos/sphinx-gallery/sphinx-gallery/zipball/master" memory_profiler + python -m pip install --user -e . + + - save_cache: + key: pip-cache + paths: + - ~/.cache/pip + + # Look at what we have and fail early if there is some library conflict + - run: + name: Check installation + command: | + which python + python -c "import ot" + + # Build docs + - run: + name: make html + command: | + cd docs; + make html; + + # Save the outputs + - store_artifacts: + path: docs/build/html/ + destination: dev + - persist_to_workspace: + root: docs/build + paths: + - html + + deploy: + docker: + - image: circleci/python:3.6-jessie + steps: + - attach_workspace: + at: /tmp/build + - run: + name: Fetch docs + command: | + set -e + mkdir -p ~/.ssh + echo -e "Host *\nStrictHostKeyChecking no" > ~/.ssh/config + chmod og= ~/.ssh/config + if [ ! -d ~/PythonOT.github.io ]; then + git clone git@github.com:/PythonOT/PythonOT.github.io.git ~/PythonOT.github.io --depth=1 + fi + - run: + name: Deploy docs + command: | + set -e; + if [ "${CIRCLE_BRANCH}" == "master" ]; then + git config --global user.email "circle@PythonOT.com"; + git config --global user.name "Circle CI"; + cd ~/PythonOT.github.io; + git checkout master + git remote -v + git fetch origin + git reset --hard origin/master + git clean -xdf + echo "Deploying dev docs for ${CIRCLE_BRANCH}."; + cp -a /tmp/build/html/* .; + touch .nojekyll; + git add -A; + git commit -m "CircleCI update of dev docs (${CIRCLE_BUILD_NUM})."; + git push origin master; + else + echo "No deployment (build: ${CIRCLE_BRANCH})."; + fi + +workflows: + version: 2 + + default: + jobs: + - build_docs + - deploy: + requires: + - build_docs + filters: + branches: + only: + - master -- cgit v1.2.3 From f48d51579d843f12a73f29d44374bb63e627238d Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Tue, 21 Apr 2020 11:19:41 +0200 Subject: try to push doc to github.io --- .circleci/config.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to '.circleci') diff --git a/.circleci/config.yml b/.circleci/config.yml index 9701ad1..455b700 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -103,24 +103,24 @@ jobs: name: Deploy docs command: | set -e; - if [ "${CIRCLE_BRANCH}" == "master" ]; then - git config --global user.email "circle@PythonOT.com"; - git config --global user.name "Circle CI"; - cd ~/PythonOT.github.io; - git checkout master - git remote -v - git fetch origin - git reset --hard origin/master - git clean -xdf - echo "Deploying dev docs for ${CIRCLE_BRANCH}."; - cp -a /tmp/build/html/* .; - touch .nojekyll; - git add -A; - git commit -m "CircleCI update of dev docs (${CIRCLE_BUILD_NUM})."; - git push origin master; - else - echo "No deployment (build: ${CIRCLE_BRANCH})."; - fi + # if [ "${CIRCLE_BRANCH}" == "master" ]; then + git config --global user.email "circle@PythonOT.com"; + git config --global user.name "Circle CI"; + cd ~/PythonOT.github.io; + git checkout master + git remote -v + git fetch origin + git reset --hard origin/master + git clean -xdf + echo "Deploying dev docs for ${CIRCLE_BRANCH}."; + cp -a /tmp/build/html/* .; + touch .nojekyll; + git add -A; + git commit -m "CircleCI update of dev docs (${CIRCLE_BUILD_NUM})."; + git push origin master; + # else + # echo "No deployment (build: ${CIRCLE_BRANCH})."; + # fi workflows: version: 2 -- cgit v1.2.3 From 5c88642a27e6c330a5c795898c0de7f3b4c0cd8d Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Tue, 21 Apr 2020 12:00:03 +0200 Subject: fix? --- .circleci/config.yml | 3 ++- .github/workflows/main.yml | 13 ++----------- 2 files changed, 4 insertions(+), 12 deletions(-) (limited to '.circleci') diff --git a/.circleci/config.yml b/.circleci/config.yml index 455b700..ea5981e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -134,4 +134,5 @@ workflows: filters: branches: only: - - master + # - master + - doc_ci_build diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 07686d9..7153fe6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,13 +1,4 @@ -on: - push: - branches: - - '**' - create: - branches: - - 'master' - tags: - - '**' - +on: [status] jobs: circleci_artifacts_redirector_job: runs-on: ubuntu-latest @@ -17,5 +8,5 @@ jobs: uses: larsoner/circleci-artifacts-redirector-action@master with: repo-token: ${{ secrets.GITHUB_TOKEN }} - artifact-path: 0/docs/build/html/index.html + artifact-path: 0/dev/index.html circleci-jobs: build_docs -- cgit v1.2.3 From 3e10d08ab7bb1a58053505e6e5bb6c8715e90854 Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Tue, 21 Apr 2020 12:12:40 +0200 Subject: fix? --- .circleci/config.yml | 4 ++++ 1 file changed, 4 insertions(+) (limited to '.circleci') diff --git a/.circleci/config.yml b/.circleci/config.yml index ea5981e..6817880 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -129,6 +129,10 @@ workflows: jobs: - build_docs - deploy: + steps: + - add_ssh_keys: + fingerprints: + - "ff:30:7b:ba:bd:5c:ec:27:49:12:11:cb:78:aa:c2:6e" requires: - build_docs filters: -- cgit v1.2.3 From 8da537d72414a7ce347f39ef64c6c819610c660c Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Tue, 21 Apr 2020 12:14:21 +0200 Subject: fix? --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to '.circleci') diff --git a/.circleci/config.yml b/.circleci/config.yml index 6817880..80fe935 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -130,9 +130,9 @@ workflows: - build_docs - deploy: steps: - - add_ssh_keys: - fingerprints: - - "ff:30:7b:ba:bd:5c:ec:27:49:12:11:cb:78:aa:c2:6e" + - add_ssh_keys: + fingerprints: + - "ff:30:7b:ba:bd:5c:ec:27:49:12:11:cb:78:aa:c2:6e" requires: - build_docs filters: -- cgit v1.2.3 From 9b66b194cdfc6b7e4b35488fa093d936fa08e011 Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Tue, 21 Apr 2020 12:15:01 +0200 Subject: fix? --- .circleci/config.yml | 4 ---- 1 file changed, 4 deletions(-) (limited to '.circleci') diff --git a/.circleci/config.yml b/.circleci/config.yml index 80fe935..ea5981e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -129,10 +129,6 @@ workflows: jobs: - build_docs - deploy: - steps: - - add_ssh_keys: - fingerprints: - - "ff:30:7b:ba:bd:5c:ec:27:49:12:11:cb:78:aa:c2:6e" requires: - build_docs filters: -- cgit v1.2.3 From 3eed3cad36ec5f5691dc029853bc36bfad5ee389 Mon Sep 17 00:00:00 2001 From: Alexandre Gramfort Date: Tue, 21 Apr 2020 12:25:36 +0200 Subject: all good --- .circleci/config.yml | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) (limited to '.circleci') diff --git a/.circleci/config.yml b/.circleci/config.yml index ea5981e..9701ad1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -103,24 +103,24 @@ jobs: name: Deploy docs command: | set -e; - # if [ "${CIRCLE_BRANCH}" == "master" ]; then - git config --global user.email "circle@PythonOT.com"; - git config --global user.name "Circle CI"; - cd ~/PythonOT.github.io; - git checkout master - git remote -v - git fetch origin - git reset --hard origin/master - git clean -xdf - echo "Deploying dev docs for ${CIRCLE_BRANCH}."; - cp -a /tmp/build/html/* .; - touch .nojekyll; - git add -A; - git commit -m "CircleCI update of dev docs (${CIRCLE_BUILD_NUM})."; - git push origin master; - # else - # echo "No deployment (build: ${CIRCLE_BRANCH})."; - # fi + if [ "${CIRCLE_BRANCH}" == "master" ]; then + git config --global user.email "circle@PythonOT.com"; + git config --global user.name "Circle CI"; + cd ~/PythonOT.github.io; + git checkout master + git remote -v + git fetch origin + git reset --hard origin/master + git clean -xdf + echo "Deploying dev docs for ${CIRCLE_BRANCH}."; + cp -a /tmp/build/html/* .; + touch .nojekyll; + git add -A; + git commit -m "CircleCI update of dev docs (${CIRCLE_BUILD_NUM})."; + git push origin master; + else + echo "No deployment (build: ${CIRCLE_BRANCH})."; + fi workflows: version: 2 @@ -134,5 +134,4 @@ workflows: filters: branches: only: - # - master - - doc_ci_build + - master -- cgit v1.2.3