Skip to content

Commit e83d4f4

Browse files
ci: add release-please configuration files
- Add release-please-config.json for automated releases - Add .release-please-manifest.json with current version - Configure changelog sections and package name
1 parent 622d9fc commit e83d4f4

File tree

7 files changed

+141
-170
lines changed

7 files changed

+141
-170
lines changed

.github/workflows/publish.yml

Lines changed: 27 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,178 +1,71 @@
11
name: Publish to npm and Docker Hub
22

33
on:
4-
# Triggered when release-please creates a tag
54
push:
65
tags:
76
- "v*"
8-
# Triggered when a GitHub release is published (by release-please)
9-
release:
10-
types: [published]
11-
# Manual trigger for testing
127
workflow_dispatch:
138
inputs:
149
version:
15-
description: "Version to release (e.g., 1.0.0)"
10+
description: "Version (e.g., 1.0.0)"
1611
required: true
1712
type: string
18-
tag:
19-
description: "npm tag (latest, beta, alpha)"
20-
required: false
21-
default: "latest"
22-
type: choice
23-
options:
24-
- latest
25-
- beta
26-
- alpha
2713

2814
env:
29-
REGISTRY: docker.io
30-
IMAGE_NAME: elpaypes/iexec-mcp
15+
IMAGE_NAME: elpaypes/mcp-server
3116

3217
jobs:
33-
validate:
18+
publish:
3419
runs-on: ubuntu-latest
35-
outputs:
36-
version: ${{ steps.get-version.outputs.version }}
37-
is-prerelease: ${{ steps.check-prerelease.outputs.is-prerelease }}
3820
steps:
39-
- name: Checkout code
40-
uses: actions/checkout@v4
41-
42-
- name: Get version from tag or input
43-
id: get-version
44-
run: |
45-
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
46-
VERSION="${{ github.event.inputs.version }}"
47-
else
48-
# Remove 'v' prefix from tag (v1.0.0 -> 1.0.0)
49-
VERSION=${GITHUB_REF#refs/tags/v}
50-
fi
51-
echo "version=$VERSION" >> $GITHUB_OUTPUT
52-
echo "Version: $VERSION"
53-
54-
- name: Check if prerelease
55-
id: check-prerelease
56-
run: |
57-
VERSION="${{ steps.get-version.outputs.version }}"
58-
if [[ $VERSION =~ (alpha|beta|rc) ]]; then
59-
echo "is-prerelease=true" >> $GITHUB_OUTPUT
60-
else
61-
echo "is-prerelease=false" >> $GITHUB_OUTPUT
62-
fi
63-
64-
- name: Setup Node.js
65-
uses: actions/setup-node@v4
66-
with:
67-
node-version: "18"
68-
cache: "npm"
69-
70-
- name: Install dependencies
71-
run: npm ci
72-
73-
# - name: Run tests
74-
# run: npm test
75-
76-
- name: Build project
77-
run: npm run build
78-
79-
npm-release:
80-
needs: validate
81-
runs-on: ubuntu-latest
82-
steps:
83-
- name: Checkout code
21+
- name: Checkout
8422
uses: actions/checkout@v4
8523

8624
- name: Setup Node.js
8725
uses: actions/setup-node@v4
8826
with:
8927
node-version: "18"
9028
registry-url: "https://registry.npmjs.org"
91-
cache: "npm"
92-
93-
- name: Install dependencies
94-
run: npm ci
95-
96-
- name: Build project
97-
run: npm run build
9829

99-
- name: Update package version
100-
run: npm version ${{ needs.validate.outputs.version }} --no-git-tag-version
101-
102-
- name: Determine npm tag
103-
id: npm-tag
30+
- name: Get version
31+
id: version
10432
run: |
10533
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
106-
TAG="${{ github.event.inputs.tag }}"
107-
elif [[ "${{ needs.validate.outputs.version }}" =~ (alpha|beta|rc) ]]; then
108-
if [[ "${{ needs.validate.outputs.version }}" =~ alpha ]]; then
109-
TAG="alpha"
110-
elif [[ "${{ needs.validate.outputs.version }}" =~ beta ]]; then
111-
TAG="beta"
112-
else
113-
TAG="next"
114-
fi
34+
VERSION="${{ github.event.inputs.version }}"
11535
else
116-
TAG="latest"
36+
VERSION=${GITHUB_REF#refs/tags/v}
11737
fi
118-
echo "tag=$TAG" >> $GITHUB_OUTPUT
119-
echo "Publishing to npm with tag: $TAG"
38+
echo "version=$VERSION" >> $GITHUB_OUTPUT
39+
echo "Publishing version: $VERSION"
40+
41+
- name: Install and build
42+
run: |
43+
npm ci
44+
npm run build
12045
121-
- name: Publish to npm @paypes
122-
run: npm publish --tag ${{ steps.npm-tag.outputs.tag }}
46+
- name: Publish to npm
47+
run: |
48+
npm publish --access public
12349
env:
12450
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
12551

126-
docker-release:
127-
needs: validate
128-
runs-on: ubuntu-latest
129-
steps:
130-
- name: Checkout code
131-
uses: actions/checkout@v4
132-
133-
- name: Set up Docker Buildx
134-
uses: docker/setup-buildx-action@v3
135-
136-
- name: Log in to Docker Hub
52+
- name: Docker login
13753
uses: docker/login-action@v3
13854
with:
13955
username: ${{ secrets.DOCKERHUB_USERNAME }}
14056
password: ${{ secrets.DOCKERHUB_TOKEN }}
14157

142-
- name: Extract metadata
143-
id: meta
144-
uses: docker/metadata-action@v5
145-
with:
146-
images: ${{ env.IMAGE_NAME }}
147-
tags: |
148-
type=raw,value=${{ needs.validate.outputs.version }}
149-
type=raw,value=latest,enable=${{ needs.validate.outputs.is-prerelease == 'false' }}
150-
151-
- name: Build and push Docker image to elpaypes
58+
- name: Build and push Docker
15259
uses: docker/build-push-action@v5
15360
with:
15461
context: .
155-
platforms: linux/amd64,linux/arm64
15662
push: true
157-
tags: ${{ steps.meta.outputs.tags }}
158-
labels: ${{ steps.meta.outputs.labels }}
159-
cache-from: type=gha
160-
cache-to: type=gha,mode=max
161-
162-
notify:
163-
needs: [validate, npm-release, docker-release]
164-
runs-on: ubuntu-latest
165-
if: always()
166-
steps:
167-
- name: Notify on success
168-
if: needs.npm-release.result == 'success' && needs.docker-release.result == 'success'
169-
run: |
170-
echo "✅ Successfully published v${{ needs.validate.outputs.version }}"
171-
echo "📦 npm: https://www.npmjs.com/package/@paypes/iexec-mcp"
172-
echo "🐳 Docker: https://hub.docker.com/r/elpaypes/iexec-mcp"
63+
tags: |
64+
${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}
65+
${{ env.IMAGE_NAME }}:latest
17366
174-
- name: Notify on failure
175-
if: needs.npm-release.result == 'failure' || needs.docker-release.result == 'failure'
67+
- name: Success
17668
run: |
177-
echo "❌ Publication failed for v${{ needs.validate.outputs.version }}"
178-
exit 1
69+
echo "✅ Published v${{ steps.version.outputs.version }}"
70+
echo "📦 npm: https://www.npmjs.com/package/@paypes/mcp-server"
71+
echo "🐳 Docker: https://hub.docker.com/r/elpaypes/mcp-server"

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.1-alpha.1"
3+
}

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Changelog
2+
3+
## [0.1.1-alpha.1](https://github.com/iExecBlockchainComputing/iexec-mcp-server/compare/mcp-server-v0.1.0-alpha.1...mcp-server-v0.1.1-alpha.1) (2025-06-02)
4+
5+
6+
### Bug Fixes
7+
8+
* correct MCP tool response format to use content array ([1798234](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/1798234195e6dff12698f322e166c9b33eda27b4))
9+
10+
11+
### Miscellaneous
12+
13+
* rename project from my-mcp-server to iexec-mcp-local-server ([3810eec](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/3810eec378826e7686d1e7df59c8802fd3dcb7ca))
14+
15+
16+
### Documentation
17+
18+
* add npx configuration option for Claude Desktop ([637754d](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/637754dee3a34b05834a74349cda8ece054e40dc))
19+
* make NPX Configuration the recommended installation method ([67b6e07](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/67b6e072588e4ad0a9ffdc99a05ecd5aab55de75))
20+
* make NPX Configuration the recommended installation method ([e949a0e](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/e949a0eb18360b7188f9cd9055bac874a855e29e))
21+
* restructure README with self-contained installation methods ([2e4c97a](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/2e4c97a4582e1bba247b1604601f8afb7d373081))
22+
* restructure README with self-contained installation methods ([ba5dc52](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/ba5dc52ea1082b16cb45b9ce9da72aec2ad94ce4))
23+
24+
25+
### CI/CD
26+
27+
* add publish workflow for npm and docker hub ([622d9fc](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/622d9fc50c6bf8e9decb43bc39a7cbb4d67d4ead))
28+
* add release-please configuration files ([3f46021](https://github.com/iExecBlockchainComputing/iexec-mcp-server/commit/3f46021f8a043503a2e974cd902b53ee6d4bf00a))
29+
30+
## [0.1.0-alpha.1] - 2025-06-02
31+
32+
### Added
33+
34+
- First functional version of iExec MCP server
35+
- Core functionality integration
36+
- Automated CI/CD pipeline

0 commit comments

Comments
 (0)