-
Notifications
You must be signed in to change notification settings - Fork 515
141 lines (128 loc) · 4.48 KB
/
publish.yml
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: Publish ACA-Py Image
run-name: Publish ACA-Py ${{ inputs.tag || github.event.release.tag_name }} Image
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: 'Image tag'
required: true
type: string
platforms:
description: 'Platforms - Comma separated list of the platforms to support.'
required: true
default: linux/amd64,linux/arm64
type: string
ref:
description: 'Optional - The branch, tag or SHA to checkout.'
required: false
type: string
workflow_call:
inputs:
tag:
required: true
type: string
platforms:
required: true
default: linux/amd64,linux/arm64
type: string
ref:
required: false
type: string
env:
# linux/386 platform support has been disabled pending a permanent fix for https://github.com/openwallet-foundation/acapy/issues/2124
# PLATFORMS: ${{ inputs.platforms || 'linux/amd64,linux/arm64,linux/386' }}
PLATFORMS: ${{ inputs.platforms || 'linux/amd64,linux/arm64' }}
jobs:
publish-image:
strategy:
fail-fast: false
matrix:
python-version: ['3.12']
name: Publish ACA-Py Image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref || '' }}
- name: Gather image info
id: info
run: |
echo "repo-owner=${GITHUB_REPOSITORY_OWNER,,}" >> $GITHUB_OUTPUT
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to the GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Image Metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ steps.info.outputs.repo-owner }}/acapy-agent
tags: |
type=raw,value=py${{ matrix.python-version }}-${{ inputs.tag || github.event.release.tag_name }}
- name: Build and Push Image to ghcr.io
uses: docker/build-push-action@v5
with:
push: true
context: .
file: docker/Dockerfile
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
target: main
build-args: |
python_version=${{ matrix.python-version }}
acapy_version=${{ inputs.tag || github.event.release.tag_name }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
platforms: ${{ env.PLATFORMS }}
- name: Setup Image Metadata (BBS)
id: meta-bbs
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ steps.info.outputs.repo-owner }}/acapy-agent-bbs
tags: |
type=raw,value=py${{ matrix.python-version }}-${{ inputs.tag || github.event.release.tag_name }}
- name: Build and Push extended Image to ghcr.io
uses: docker/build-push-action@v5
with:
push: true
context: .
file: docker/Dockerfile
tags: ${{ steps.meta-bbs.outputs.tags }}
labels: ${{ steps.meta-bbs.outputs.labels }}
target: main
build-args: |
python_version=${{ matrix.python-version }}
acapy_name=acapy-agent-bbs
acapy_version=${{ inputs.tag || github.event.release.tag_name }}
acapy_reqs=[askar,bbs,didcommv2]
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
# Because of BBS, only linux/amd64 is supported for the extended image
# https://github.com/openwallet-foundation/acapy/issues/2124#issuecomment-2293569659
platforms: linux/amd64
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache