18
18
- ' cryptography-manylinux/**'
19
19
20
20
jobs :
21
+ # Build containers for x86
21
22
build :
22
23
runs-on : ubuntu-latest
23
24
strategy :
@@ -28,19 +29,16 @@ jobs:
28
29
- {TAG_NAME: "pyca/cryptography-runner-centos8-fips", DOCKERFILE_PATH: "runners/centos8", BUILD_ARGS: "--build-arg FIPS=1"}
29
30
30
31
- {TAG_NAME: "pyca/cryptography-runner-fedora", DOCKERFILE_PATH: "runners/fedora"}
31
- - {TAG_NAME: "pyca/cryptography-runner-alpine", DOCKERFILE_PATH: "runners/alpine"}
32
32
33
33
- {TAG_NAME: "pyca/cryptography-runner-stretch", DOCKERFILE_PATH: "runners/debian", BUILD_ARGS: "--build-arg RELEASE=stretch"}
34
34
- {TAG_NAME: "pyca/cryptography-runner-buster", DOCKERFILE_PATH: "runners/debian", BUILD_ARGS: "--build-arg RELEASE=buster"}
35
35
- {TAG_NAME: "pyca/cryptography-runner-bullseye", DOCKERFILE_PATH: "runners/debian", BUILD_ARGS: "--build-arg RELEASE=bullseye"}
36
36
- {TAG_NAME: "pyca/cryptography-runner-sid", DOCKERFILE_PATH: "runners/debian", BUILD_ARGS: "--build-arg RELEASE=sid"}
37
37
38
- - {TAG_NAME: "pyca/cryptography-runner-ubuntu-bionic", DOCKERFILE_PATH: "runners/ubuntu", BUILD_ARGS: "--build-arg RELEASE=bionic"}
39
- - {TAG_NAME: "pyca/cryptography-runner-ubuntu-focal", DOCKERFILE_PATH: "runners/ubuntu", BUILD_ARGS: "--build-arg RELEASE=focal"}
40
- - {TAG_NAME: "pyca/cryptography-runner-ubuntu-rolling", DOCKERFILE_PATH: "runners/ubuntu", BUILD_ARGS: "--build-arg RELEASE=rolling"}
38
+ - {TAG_NAME: "pyca/cryptography-runner-alpine", DOCKERFILE_PATH: "runners/alpine"}
41
39
42
- - {TAG_NAME: "pyca/cryptography-manylinux1:x86_64 ", DOCKERFILE_PATH: "cryptography-manylinux", BUILD_ARGS: "-f cryptography-manylinux/Dockerfile-manylinux1"}
43
- - {TAG_NAME: "pyca/cryptography-manylinux2010:x86_64 ", DOCKERFILE_PATH: "cryptography-manylinux", BUILD_ARGS: "-f cryptography-manylinux/Dockerfile-manylinux2010"}
40
+ - {TAG_NAME: "pyca/cryptography-manylinux1", DOCKERFILE_PATH: "cryptography-manylinux", BUILD_ARGS: "-f cryptography-manylinux/Dockerfile-manylinux1"}
41
+ - {TAG_NAME: "pyca/cryptography-manylinux2010", DOCKERFILE_PATH: "cryptography-manylinux", BUILD_ARGS: "-f cryptography-manylinux/Dockerfile-manylinux2010"}
44
42
45
43
name : " Building docker image ${{ matrix.IMAGE.TAG_NAME }}"
46
44
steps :
61
59
- name : Push image
62
60
run : docker push ${{ matrix.IMAGE.TAG_NAME }}
63
61
if : (github.event_name == 'push' || github.event_name == 'schedule') && github.ref == 'refs/heads/master'
62
+
63
+ # Build the manylinux2014_aarch64 container
64
+ build_manylinux2014_aarch64 :
65
+ runs-on : ubuntu-latest
66
+ strategy :
67
+ matrix :
68
+ IMAGE :
69
+ - {TAG_NAME: "pyca/cryptography-manylinux2014_aarch64", DOCKERFILE_PATH: "cryptography-manylinux", BUILD_ARGS: "-f cryptography-manylinux/Dockerfile-manylinux2014_aarch64"}
70
+
71
+ name : " Building docker image ${{ matrix.IMAGE.TAG_NAME }}"
72
+ steps :
73
+ - uses : actions/checkout@master
74
+ - name : Docker Buildx
75
+ id : buildx
76
+
77
+ with :
78
+ buildx-version : latest
79
+ qemu-version : latest
80
+ # Pull the previous image, but if it fails return true anyway.
81
+ # Sometimes we add new docker images and if they've never been pushed
82
+ # they can't be pulled.
83
+ - name : Pull existing image
84
+ run : docker pull ${{ matrix.IMAGE.TAG_NAME }}:latest || true
85
+ - name : Build image
86
+ run : >
87
+ docker buildx build --platform linux/arm64 --pull --cache-from ${{ matrix.IMAGE.TAG_NAME }}
88
+ --cache-to "type=local,dest=/tmp/.buildx-cache" --output "type=image,push=false"
89
+ -t ${{ matrix.IMAGE.TAG_NAME }} ${{ matrix.IMAGE.DOCKERFILE_PATH }} ${{ matrix.IMAGE.BUILD_ARGS }}
90
+ - name : Login to docker
91
+ run : ' docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"'
92
+ env :
93
+ DOCKER_USERNAME : ${{ secrets.DOCKER_USERNAME }}
94
+ DOCKER_PASSWORD : ${{ secrets.DOCKER_PASSWORD }}
95
+ if : (github.event_name == 'push' || github.event_name == 'schedule') && github.ref == 'refs/heads/master'
96
+ - name : Push image
97
+ run : >
98
+ docker buildx build --cache-from "type=local,src=/tmp/.buildx-cache"
99
+ --platform linux/arm64 --output "type=image,push=true" -t ${{ matrix.IMAGE.TAG_NAME }}
100
+ ${{ matrix.IMAGE.DOCKERFILE_PATH }} ${{ matrix.IMAGE.BUILD_ARGS }}
101
+ if : (github.event_name == 'push' || github.event_name == 'schedule') && github.ref == 'refs/heads/master'
0 commit comments