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

commands:
  docker-pull:
    parameters:
      image:
        type: string
    steps:
      - run: docker pull <<parameters.image>>
  docker-run:
    parameters:
      image:
        type: string
      command:
        type: string
    steps:
      - run: docker run -e PLATFORM -e PYTHON -v $(pwd):/test <<parameters.image>>  /bin/bash -c 'cd /test;<<parameters.command>>'

jobs:
  linux-arm64:
    machine:
      image: ubuntu-2004:current
    resource_class: arm.medium
    parameters:
      image:
        type: string
      toxenv:
        type: string
    steps:
      - checkout
      - docker-pull:
          image: <<parameters.image>>
      - docker-run:
          image: <<parameters.image>>
          command: /venv/bin/pip install tox && /venv/bin/tox -e <<parameters.toxenv>>
  linux-arm64-wheel:
    machine:
      image: ubuntu-2004:current
    resource_class: arm.medium
    parameters:
      image:
        type: string
      platform:
        type: string
      python:
        type: string
    environment:
        PLATFORM: <<parameters.platform>>
        PYTHON: <<parameters.python>>
    steps:
      - checkout
      - docker-pull:
          image: <<parameters.image>>
      - docker-run:
          image: <<parameters.image>>
          command: /test/.circleci/build-wheel.sh
      - store_artifacts:
          path: wheelhouse.final

workflows:
  ci:
    jobs:
      - linux-arm64:
          # Changing this name should only be done in conjunction with updating
          # the required checks on GH
          name: linux-arm64-ci
          image: ghcr.io/pyca/cryptography-runner-ubuntu-jammy:aarch64
          toxenv: py310
          # This makes sure it runs on all tags in addition to PRs/branches.
          # By default CircleCI ignores tags.
          filters:
            tags:
              only: /.*/
      - linux-arm64-wheel:
          name: manylinux2014_aarch64-wheel
          image: ghcr.io/pyca/cryptography-manylinux2014_aarch64:latest
          python: cp36-cp36m
          platform: manylinux2014_aarch64
          filters:
            tags:
              only: /.*/
      - linux-arm64-wheel:
          name: manylinux_2_28_aarch64-wheel
          image: ghcr.io/pyca/cryptography-manylinux_2_28:aarch64
          python: cp36-cp36m
          platform: manylinux_2_28_aarch64
          filters:
            tags:
              only: /.*/
      - linux-arm64-wheel:
          name: musllinux_1_1_aarch64-wheel
          image: ghcr.io/pyca/cryptography-musllinux_1_1:aarch64
          python: cp36-cp36m
          platform: musllinux_1_1_aarch64
          filters:
            tags:
              only: /.*/