Skip to main content
Glama
deployment_cicd.md.Ci2T0UYC.js10.6 kB
import{_ as i,c as a,o as n,a6 as l}from"./chunks/framework.CHl2ywxc.js";const o=JSON.parse('{"title":"CI/CD Pipelines","description":"","frontmatter":{},"headers":[],"relativePath":"deployment/cicd.md","filePath":"deployment/cicd.md","lastUpdated":1755281500000}'),h={name:"deployment/cicd.md"};function p(t,s,k,e,E,r){return n(),a("div",null,s[0]||(s[0]=[l(`<h1 id="ci-cd-pipelines" tabindex="-1">CI/CD Pipelines <a class="header-anchor" href="#ci-cd-pipelines" aria-label="Permalink to &quot;CI/CD Pipelines&quot;">​</a></h1><p>Below are example steps you can adapt for your CI provider.</p><h2 id="build-publish-docker-image-github-actions" tabindex="-1">Build &amp; Publish Docker Image (GitHub Actions) <a class="header-anchor" href="#build-publish-docker-image-github-actions" aria-label="Permalink to &quot;Build &amp; Publish Docker Image (GitHub Actions)&quot;">​</a></h2><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">build-and-push</span></span> <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">on</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> push</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> branches</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [ </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ]</span></span> <span class="line"></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">jobs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> docker</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> runs-on</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">ubuntu-latest</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> permissions</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> contents</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">read</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> packages</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">write</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> steps</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">uses</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">actions/checkout@v4</span></span> <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">uses</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">docker/setup-buildx-action@v3</span></span> <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">uses</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">docker/login-action@v3</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> registry</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">ghcr.io</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> username</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\${{ github.actor }}</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> password</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\${{ secrets.GITHUB_TOKEN }}</span></span> <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">Build</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> run</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span></span> <span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> docker build -f deploy/docker/Dockerfile -t ghcr.io/\${{ github.repository }}:latest .</span></span> <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">Push</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> run</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">docker push ghcr.io/\${{ github.repository }}:latest</span></span></code></pre></div><h2 id="deploy-to-cloudflare-workers-github-actions" tabindex="-1">Deploy to Cloudflare Workers (GitHub Actions) <a class="header-anchor" href="#deploy-to-cloudflare-workers-github-actions" aria-label="Permalink to &quot;Deploy to Cloudflare Workers (GitHub Actions)&quot;">​</a></h2><div class="language-yaml vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">yaml</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">deploy-workers</span></span> <span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">on</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> push</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> branches</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [ </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ]</span></span> <span class="line"></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">jobs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> deploy</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> runs-on</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">ubuntu-latest</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> steps</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">uses</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">actions/checkout@v4</span></span> <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> - </span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">uses</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">cloudflare/wrangler-action@v3</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> with</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> apiToken</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">\${{ secrets.CLOUDFLARE_API_TOKEN }}</span></span> <span class="line"><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;"> command</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">deploy --env production</span></span></code></pre></div><h2 id="deploy-to-koyeb-cli-from-ci" tabindex="-1">Deploy to Koyeb (CLI from CI) <a class="header-anchor" href="#deploy-to-koyeb-cli-from-ci" aria-label="Permalink to &quot;Deploy to Koyeb (CLI from CI)&quot;">​</a></h2><p>Use Koyeb’s GitHub Action or the CLI with an API token to update the service image tag after push to GHCR.</p>`,8)]))}const c=i(h,[["render",p]]);export{o as __pageData,c as default};

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jakedismo/master-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server