-
Notifications
You must be signed in to change notification settings - Fork 44
105 lines (93 loc) · 3.14 KB
/
Copy pathbuild.yaml
File metadata and controls
105 lines (93 loc) · 3.14 KB
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
name: Build-Publish
on:
# Run this workflow on pushes of tags like v1.0.0
push:
tags:
- 'v*'
# Allows also to run this workflow manually from the Actions tab
workflow_dispatch:
permissions: {}
jobs:
build-and-push:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
packages: write
strategy:
matrix:
image_config:
- name: a2a_contact_extractor
path: ./a2a
- name: a2a_currency_converter
path: ./a2a
- name: claude_agent
path: ./a2a
- name: file_organizer
path: ./a2a
- name: generic_agent
path: ./a2a
- name: git_issue_agent
path: ./a2a
- name: image_service
path: ./a2a
- name: reservation_service
path: ./a2a
- name: simple_generalist
path: ./a2a
- name: slack_researcher
path: ./a2a
- name: weather_service
path: ./a2a
- name: appworld_apis
path: ./mcp
- name: cloud_storage_tool
path: ./mcp
- name: flight_tool
path: ./mcp
- name: github_tool
path: ./mcp
- name: image_tool
path: ./mcp
- name: movie_tool
path: ./mcp
- name: reservation_tool
path: ./mcp
- name: shopping_tool
path: ./mcp
- name: slack_tool
path: ./mcp
- name: weather_tool
path: ./mcp
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Set up QEMU
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4
- name: Log in to ghcr.io
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract Docker metadata for ${{ matrix.image_config.name }}
id: meta
uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6
with:
images: ghcr.io/${{ github.repository }}/${{ matrix.image_config.name }}
tags: |
# extract tag from git ref, e.g., v1.0.0 -> 1.0.0
type=ref,event=tag
# also tag as latest on tag push
type=raw,value=latest,enable=${{ github.ref_type == 'tag' }}
- name: Build and push ${{ matrix.image_config.name }}
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7
with:
context: ${{ matrix.image_config.path }}/${{ matrix.image_config.name }}
file: ${{ matrix.image_config.path }}/${{ matrix.image_config.name }}/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}