Skip to content

Commit 89545ac

Browse files
authored
Merge branch 'main' into prototype-a2a-card-artifact-type
2 parents 13f71d6 + e201a96 commit 89545ac

File tree

347 files changed

+35697
-11617
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

347 files changed

+35697
-11617
lines changed

.github/workflows/ci-simplification-plan.md

Lines changed: 0 additions & 615 deletions
This file was deleted.

.github/workflows/release-artifacts.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@ jobs:
146146
uses: actions/setup-node@v4
147147
with:
148148
node-version: 20
149-
cache: 'npm'
150-
cache-dependency-path: 'registry/ui/**/package-lock.json'
151149

152150
- name: Maven Install
153151
run: |
@@ -290,6 +288,9 @@ jobs:
290288
node-version: 20
291289
registry-url: 'https://registry.npmjs.org'
292290

291+
- name: Update npm
292+
run: npm install -g npm@latest
293+
293294
- name: Build and Publish Artifact Type Builtins Package
294295
working-directory: registry/artifact-type-builtins
295296
run: |

.github/workflows/release-images.yaml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,31 @@ jobs:
8383
java-version: '17'
8484
distribution: 'temurin'
8585

86+
- name: Cache Kiota binary
87+
uses: actions/cache@v4
88+
id: kiota-cache
89+
with:
90+
path: ~/.kiota
91+
key: kiota-1.28.0-linux-x64
92+
93+
- name: Download Kiota binary
94+
if: steps.kiota-cache.outputs.cache-hit != 'true'
95+
uses: nick-fields/retry@v3
96+
with:
97+
timeout_minutes: 5
98+
max_attempts: 3
99+
retry_wait_seconds: 10
100+
command: |
101+
mkdir -p ~/.kiota
102+
curl -L --retry 3 --retry-delay 5 \
103+
-o ~/.kiota/kiota-linux-x64.zip \
104+
https://github.com/microsoft/kiota/releases/download/v1.28.0/linux-x64.zip
105+
unzip -o ~/.kiota/kiota-linux-x64.zip -d ~/.kiota/
106+
chmod +x ~/.kiota/kiota
107+
108+
- name: Add Kiota to PATH
109+
run: echo "$HOME/.kiota" >> $GITHUB_PATH
110+
86111
- name: Set up Node.js
87112
uses: actions/setup-node@v4
88113
with:
@@ -91,7 +116,7 @@ jobs:
91116
- name: Build Registry
92117
run: |
93118
cd registry
94-
./mvnw clean package -am --no-transfer-progress -Pprod -DskipTests=true -DskipCommitIdPlugin=false -Dmaven.wagon.httpconnectionManager.maxTotal=30 -Dmaven.wagon.http.retryHandler.count=5
119+
./mvnw clean package -am --no-transfer-progress -Pprod -DskipTests=true -DskipCommitIdPlugin=false -Dkiota.system=true -Dmaven.wagon.httpconnectionManager.maxTotal=30 -Dmaven.wagon.http.retryHandler.count=5
95120
96121
- name: Build Registry UI
97122
working-directory: registry/ui

.github/workflows/release-sdks.yaml

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ jobs:
101101
- name: Publish to PyPI
102102
working-directory: registry/python-sdk
103103
env:
104-
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
105-
run: poetry publish
104+
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
105+
run: make publish
106106

107107
- name: Notify on completion
108108
if: always()
@@ -137,26 +137,41 @@ jobs:
137137
uses: actions/setup-go@v5
138138
with:
139139
go-version: '1.23'
140+
cache: false
140141

141-
- name: Clone Go SDK Repository
142+
- name: Release Go SDK
143+
working-directory: registry
142144
run: |
143-
git clone https://apicurio-ci:${{ secrets.ACCESS_TOKEN }}@github.com/Apicurio/apicurio-registry-go-sdk.git go-sdk
144-
cd go-sdk
145-
git checkout main
146-
147-
- name: Update Go SDK
148-
run: |
149-
# Copy updated SDK files
150-
rm -rf go-sdk/v3/
151-
cp -r registry/go-sdk/* go-sdk/
152-
153-
- name: Create Tag and Push
154-
working-directory: go-sdk
155-
run: |
156-
git add .
157-
git commit -m "Release ${{ needs.prepare.outputs.release-version }}" || true
158-
git tag v${{ needs.prepare.outputs.release-version }}
159-
git push origin main --tags
145+
git tag "v${{ needs.prepare.outputs.release-version }}"
146+
git tag "go-sdk/v${{ needs.prepare.outputs.release-version }}"
147+
git push origin "v${{ needs.prepare.outputs.release-version }}"
148+
git push origin "go-sdk/v${{ needs.prepare.outputs.release-version }}"
149+
150+
# Retry up to 5 times with increasing sleep intervals.
151+
MAX_RETRIES=5
152+
RETRY_COUNT=0
153+
SUCCESS=false
154+
155+
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
156+
echo "Attempt $((RETRY_COUNT + 1)) of $MAX_RETRIES..."
157+
if GOPROXY=proxy.golang.org go list -m "github.com/apicurio/apicurio-registry/go-sdk/v3@v${{ needs.prepare.outputs.release-version }}"; then
158+
SUCCESS=true
159+
echo "Successfully verified Go module."
160+
break
161+
else
162+
RETRY_COUNT=$((RETRY_COUNT + 1))
163+
if [ $RETRY_COUNT -lt $MAX_RETRIES ]; then
164+
SLEEP_TIME=$((RETRY_COUNT * 10))
165+
echo "Failed. Retrying in $SLEEP_TIME seconds..."
166+
sleep $SLEEP_TIME
167+
fi
168+
fi
169+
done
170+
171+
if [ "$SUCCESS" = false ]; then
172+
echo "ERROR: Failed to verify Go module after $MAX_RETRIES attempts."
173+
exit 1
174+
fi
160175
161176
- name: Notify on completion
162177
if: always()

.github/workflows/release.yaml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,31 @@ jobs:
7474
java-version: '17'
7575
distribution: 'temurin'
7676

77+
- name: Cache Kiota binary
78+
uses: actions/cache@v4
79+
id: kiota-cache
80+
with:
81+
path: ~/.kiota
82+
key: kiota-1.28.0-linux-x64
83+
84+
- name: Download Kiota binary
85+
if: steps.kiota-cache.outputs.cache-hit != 'true'
86+
uses: nick-fields/retry@v3
87+
with:
88+
timeout_minutes: 5
89+
max_attempts: 3
90+
retry_wait_seconds: 10
91+
command: |
92+
mkdir -p ~/.kiota
93+
curl -L --retry 3 --retry-delay 5 \
94+
-o ~/.kiota/kiota-linux-x64.zip \
95+
https://github.com/microsoft/kiota/releases/download/v1.28.0/linux-x64.zip
96+
unzip -o ~/.kiota/kiota-linux-x64.zip -d ~/.kiota/
97+
chmod +x ~/.kiota/kiota
98+
99+
- name: Add Kiota to PATH
100+
run: echo "$HOME/.kiota" >> $GITHUB_PATH
101+
77102
- name: Set up Node.js
78103
uses: actions/setup-node@v4
79104
with:
@@ -145,7 +170,7 @@ jobs:
145170
- name: Build Registry
146171
run: |
147172
cd registry
148-
./mvnw clean package --no-transfer-progress -Pprod -DskipTests=true -DskipCommitIdPlugin=false -Dmaven.wagon.httpconnectionManager.maxTotal=30 -Dmaven.wagon.http.retryHandler.count=5
173+
./mvnw clean package --no-transfer-progress -Pprod -DskipTests=true -DskipCommitIdPlugin=false -Dkiota.system=true -Dmaven.wagon.httpconnectionManager.maxTotal=30 -Dmaven.wagon.http.retryHandler.count=5
149174
150175
- name: Build Registry UI
151176
working-directory: registry/ui

.github/workflows/reusable-docker-build.yaml

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ jobs:
9494
docker-build:
9595
name: Build and Push Docker Image
9696
runs-on: ubuntu-22.04
97+
timeout-minutes: 60
9798
steps:
9899
- name: Checkout Code
99100
uses: actions/checkout@v4
@@ -188,10 +189,24 @@ jobs:
188189
echo "tags=$TAGS" >> $GITHUB_OUTPUT
189190
190191
- name: Build and Push Multi-arch Image
191-
uses: docker/build-push-action@v5
192+
uses: nick-fields/retry@v3
193+
env:
194+
DOCKER_TAGS: ${{ steps.tags.outputs.tags }}
192195
with:
193-
push: true
194-
file: ${{ inputs.dockerfile }}
195-
context: ${{ inputs.context }}
196-
platforms: ${{ inputs.platforms }}
197-
tags: ${{ steps.tags.outputs.tags }}
196+
timeout_minutes: 45
197+
max_attempts: 3
198+
retry_wait_seconds: 30
199+
command: |
200+
# Convert comma-separated tags to --tag arguments
201+
TAG_ARGS=""
202+
IFS=',' read -ra TAGS <<< "$DOCKER_TAGS"
203+
for tag in "${TAGS[@]}"; do
204+
TAG_ARGS="$TAG_ARGS --tag $tag"
205+
done
206+
207+
docker buildx build \
208+
--push \
209+
--file ${{ inputs.dockerfile }} \
210+
--platform ${{ inputs.platforms }} \
211+
$TAG_ARGS \
212+
${{ inputs.context }}

.github/workflows/verify-build.yaml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,36 @@ jobs:
3131
distribution: 'temurin'
3232
cache: 'maven'
3333

34+
- name: Cache Kiota binary
35+
uses: actions/cache@v4
36+
id: kiota-cache
37+
with:
38+
path: ~/.kiota
39+
key: kiota-1.28.0-linux-x64
40+
41+
- name: Download Kiota binary
42+
if: steps.kiota-cache.outputs.cache-hit != 'true'
43+
uses: nick-fields/retry@v3
44+
with:
45+
timeout_minutes: 5
46+
max_attempts: 3
47+
retry_wait_seconds: 10
48+
command: |
49+
mkdir -p ~/.kiota
50+
curl -L --retry 3 --retry-delay 5 \
51+
-o ~/.kiota/kiota-linux-x64.zip \
52+
https://github.com/microsoft/kiota/releases/download/v1.28.0/linux-x64.zip
53+
unzip -o ~/.kiota/kiota-linux-x64.zip -d ~/.kiota/
54+
chmod +x ~/.kiota/kiota
55+
56+
- name: Add Kiota to PATH
57+
run: echo "$HOME/.kiota" >> $GITHUB_PATH
58+
3459
- name: Build Application (skip tests for speed)
3560
run: |
36-
./mvnw clean package --no-transfer-progress \
61+
./mvnw clean package -T 0.5C --no-transfer-progress \
3762
-Pprod -DskipTests=true -DskipCommitIdPlugin=false \
63+
-Dkiota.system=true \
3864
-Dmaven.wagon.httpconnectionManager.maxTotal=30 \
3965
-Dmaven.wagon.http.retryHandler.count=5
4066
@@ -52,13 +78,16 @@ jobs:
5278
output-path: '/tmp/apicurio-registry-${{ github.sha }}.tar'
5379
artifact-name: 'apicurio-registry-${{ github.sha }}.tar'
5480

55-
- name: Upload Build Artifacts for Native Build
81+
- name: Upload Build Artifacts for Publish
5682
uses: actions/upload-artifact@v4
5783
with:
5884
name: build-artifacts-${{ github.sha }}
5985
path: |
6086
app/target/
6187
distro/docker/target/
88+
mcp/target/docker/
89+
java-sdk/target/
90+
java-sdk-v2/target/
6291
retention-days: 1
6392

6493
build-ui:

.github/workflows/verify-publish.yaml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ jobs:
2626
dockerfile: './distro/docker/target/docker/Dockerfile.jvm'
2727
context: './distro/docker/target/docker'
2828
tag: 'latest-snapshot'
29-
maven-build: true
30-
maven-args: 'clean package -T 0.5C -Pprod -DskipTests --no-transfer-progress -DskipCommitIdPlugin=false -Dmaven.wagon.httpconnectionManager.maxTotal=30 -Dmaven.wagon.http.retryHandler.count=5'
29+
maven-build: false
30+
download-artifact: 'build-artifacts-${{ inputs.image-tag }}'
31+
platforms: 'linux/amd64,linux/arm64'
3132
secrets:
3233
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
3334
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
@@ -43,8 +44,9 @@ jobs:
4344
context: './mcp/target/docker'
4445
tag: 'latest-snapshot'
4546
push-to-dockerhub: false
46-
maven-build: true
47-
maven-args: 'clean package -T 0.5C -Pprod -DskipTests --no-transfer-progress -pl mcp -am'
47+
maven-build: false
48+
download-artifact: 'build-artifacts-${{ inputs.image-tag }}'
49+
platforms: 'linux/amd64,linux/arm64'
4850
secrets:
4951
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
5052
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
@@ -59,6 +61,7 @@ jobs:
5961
tag: 'latest-snapshot'
6062
npm-build: true
6163
npm-build-dir: 'ui'
64+
platforms: 'linux/amd64,linux/arm64'
6265
secrets:
6366
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
6467
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}

.github/workflows/verify-unit-tests.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,31 @@ jobs:
2626
distribution: 'temurin'
2727
cache: 'maven'
2828

29+
- name: Cache Kiota binary
30+
uses: actions/cache@v4
31+
id: kiota-cache
32+
with:
33+
path: ~/.kiota
34+
key: kiota-1.28.0-linux-x64
35+
36+
- name: Download Kiota binary
37+
if: steps.kiota-cache.outputs.cache-hit != 'true'
38+
uses: nick-fields/retry@v3
39+
with:
40+
timeout_minutes: 5
41+
max_attempts: 3
42+
retry_wait_seconds: 10
43+
command: |
44+
mkdir -p ~/.kiota
45+
curl -L --retry 3 --retry-delay 5 \
46+
-o ~/.kiota/kiota-linux-x64.zip \
47+
https://github.com/microsoft/kiota/releases/download/v1.28.0/linux-x64.zip
48+
unzip -o ~/.kiota/kiota-linux-x64.zip -d ~/.kiota/
49+
chmod +x ~/.kiota/kiota
50+
51+
- name: Add Kiota to PATH
52+
run: echo "$HOME/.kiota" >> $GITHUB_PATH
53+
2954
- name: Download Build Artifacts
3055
uses: actions/download-artifact@v4
3156
with:
@@ -43,5 +68,6 @@ jobs:
4368
run: |
4469
./mvnw verify --no-transfer-progress \
4570
-Pprod -DskipCommitIdPlugin=false \
71+
-Dkiota.system=true \
4672
-Dmaven.wagon.httpconnectionManager.maxTotal=30 \
4773
-Dmaven.wagon.http.retryHandler.count=5

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,10 @@ python-sdk/openapi.json
3535
__pycache__
3636

3737
.env
38+
39+
# Docker/Testcontainers workarounds
40+
**/docker-java.properties
41+
42+
# Generated Repository Index
43+
PROJECT_INDEX.md
44+
PROJECT_INDEX.json

0 commit comments

Comments
 (0)