summaryrefslogtreecommitdiff
path: root/.circleci/config.yml
blob: a0f976219ad4313bc27eca2a69358c1f2f5dc02a (plain)
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
version: 2.1


orbs:
  orb: invocations/orb@dev:debuggery


jobs:
  kerberos:
    executor:
      name: orb/default
      version: "3.6"
    steps:
      - orb/setup
      # Required to actually see all of universe/multiverse :(
      - run: sudo apt update
      # System reqs to install/build gssapi c-ext & friends (who only
      # appear to offer wheels for Windows)
      - run: sudo apt install -y libkrb5-dev krb5-admin-server krb5-kdc 
      # Our gssapi-supporting flavor, eg gssapi, pyasn1 etc
      - run: pip install -e '.[gssapi]'
      # Test-only deps for Kerberos (if they are importable it triggers
      # running the kerberos tests instead of skipping them)
      - run: pip install k5test
      # Do the thing, win the points!
      - run: inv test
      - orb/debug


workflows:
  main:
    jobs:
      - orb/lint:
          name: Lint
      - orb/format:
          name: Style check
      # Main test run, w/ coverage, and latest-supported cryptography
      - orb/coverage:
          name: Test 3.6 (w/ coverage, latest crypto)
      # Non-coverage runs w/ other crypto versions.
      # (Phrased as 2-dimensional matrix but 3.6 only for now to save credits)
      - orb/test:
          name: Test << matrix.version >> w/ << matrix.pip-overrides >>
          matrix:
            parameters:
              version: ["3.6"]
              # TODO: I don't see a nicer way to do this that doesn't require
              # making the orb know too much about its client code...
              pip-overrides: ["cryptography==2.5", "cryptography==3.4"]
      # Kerberos tests. Currently broken :(
      #- kerberos:
      #    name: Test 3.6 w/ Kerberos support
      #    # No point testing k5 if base tests already fail
      #    requires: ["Test 3.6 (w/ coverage, latest crypto)"]
      - orb/test-release:
          name: Release test
      - orb/test:
          name: Test << matrix.version >>
          # It's not worth testing on other interpreters if the baseline one
          # failed. Can't run >4 jobs at a time anyhow!
          requires: ["Test 3.6 (w/ coverage, latest crypto)"]
          matrix:
            parameters:
              version: ["3.7", "3.8", "3.9"]