File: config.yml

package info (click to toggle)
python-cycler 0.12.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 184 kB
  • sloc: python: 544; makefile: 156
file content (127 lines) | stat: -rw-r--r-- 3,681 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Circle CI configuration file
# https://circleci.com/docs/

---
version: 2.1

#######################################
# Define some common steps as commands.
#

commands:
  check-skip:
    steps:
      - run:
          name: Check-skip
          command: |
            export git_log=$(git log --max-count=1 --pretty=format:"%B" |
                             tr "\n" " ")
            echo "Got commit message:"
            echo "${git_log}"
            if [[ -v CIRCLE_PULL_REQUEST ]] && ( \
                [[ "$git_log" == *"[skip circle]"* ]] || \
                [[ "$git_log" == *"[circle skip]"* ]]); then
              echo "Skip detected, exiting job ${CIRCLE_JOB} for PR ${CIRCLE_PULL_REQUEST}."
              circleci-agent step halt;
            fi

  merge:
    steps:
      - run:
          name: Merge with upstream
          command: |
            if ! git remote -v | grep upstream; then
              git remote add upstream https://github.com/matplotlib/cycler.git
            fi
            git fetch upstream
            if [[ "$CIRCLE_BRANCH" != "main" ]] && \
               [[ "$CIRCLE_PR_NUMBER" != "" ]]; then
              echo "Merging ${CIRCLE_PR_NUMBER}"
              git pull --ff-only upstream "refs/pull/${CIRCLE_PR_NUMBER}/merge"
            fi

  pip-install:
    description: Upgrade pip to get as clean an install as possible
    steps:
      - run:
          name: Upgrade pip
          command: |
            python -m pip install --upgrade --user pip

  cycler-install:
    steps:
      - run:
          name: Install Cycler
          command: |
            python -m pip install --user -ve .[docs]

  doc-build:
    steps:
      - restore_cache:
          keys:
            - sphinx-env-v1-{{ .BuildNum }}-{{ .Environment.CIRCLE_JOB }}
            - sphinx-env-v1-{{ .Environment.CIRCLE_PREVIOUS_BUILD_NUM }}-{{ .Environment.CIRCLE_JOB }}
      - run:
          name: Build documentation
          command: |
            # Set epoch to date of latest tag.
            export SOURCE_DATE_EPOCH="$(git log -1 --format=%at $(git describe --abbrev=0))"
            mkdir -p logs
            make html SPHINXOPTS="-T -j4 -w /tmp/sphinxerrorswarnings.log"
            rm -r build/html/_sources
          working_directory: doc
      - save_cache:
          key: sphinx-env-v1-{{ .BuildNum }}-{{ .Environment.CIRCLE_JOB }}
          paths:
            - doc/build/doctrees

  doc-show-errors-warnings:
    steps:
      - run:
          name: Extract possible build errors and warnings
          command: |
            (grep "WARNING\|ERROR" /tmp/sphinxerrorswarnings.log ||
             echo "No errors or warnings")
            # Save logs as an artifact, and convert from absolute paths to
            # repository-relative paths.
            sed "s~$PWD/~~" /tmp/sphinxerrorswarnings.log > \
              doc/logs/sphinx-errors-warnings.log
          when: always
      - store_artifacts:
          path: doc/logs/sphinx-errors-warnings.log

##########################################
# Here is where the real jobs are defined.
#

jobs:
  docs-python39:
    docker:
      - image: cimg/python:3.9
    resource_class: large
    steps:
      - checkout
      - check-skip
      - merge

      - pip-install

      - cycler-install

      - doc-build
      - doc-show-errors-warnings

      - store_artifacts:
          path: doc/build/html

#########################################
# Defining workflows gets us parallelism.
#

workflows:
  version: 2
  build:
    jobs:
      # NOTE: If you rename this job, then you must update the `if` condition
      # and `circleci-jobs` option in `.github/workflows/circleci.yml`.
      - docs-python39