Skip to content

fix: added ephemeral deployment #2

fix: added ephemeral deployment

fix: added ephemeral deployment #2

name: Ephemeral (Testing) Deployment
on:
pull_request:
types:
- opened
- reopened
- synchronize
jobs:
build:
name: Build Images
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Gcloud Auth
uses: google-github-actions/auth@v1
with:
credentials_json: "${{ secrets.ORG_SANDBOX_DEPLOYMENT_KEY }}"
- name: Setup Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- name: Set Image Tag
id: lookup
run: echo "version=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- run: |
gcloud auth list
gcloud auth configure-docker -q
echo "VERSION: ${{ steps.lookup.outputs.version }}"
- name: Build and Push Images
run: |
./scripts/build-img.py -p staging
env:
BACKEND_URL: ${{ secrets.STAGING_NEXT_PUBLIC_BACKEND_URL }}
NEXT_PUBLIC_GOOGLE_ANALYTICS_TRACKING_ID: ${{ secrets.NEXT_PUBLIC_GOOGLE_ANALYTICS_TRACKING_ID }}
deploy:
name: Ephemeral Deployment
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Gcloud Auth
uses: google-github-actions/auth@v1
with:
credentials_json: "${{ secrets.ORG_SANDBOX_DEPLOYMENT_KEY }}"
- name: Setup Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- name: Set Image Tag
id: lookup
run: echo "version=$(git describe --always --dirty=-wip)" >> $GITHUB_OUTPUT
- name: Turnstyle
uses: softprops/turnstyle@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Pull Helm Chart from ChartMuseum
run: |
mkdir -p ./charts
helm repo add chartmuseum https://chartmuseum.example.com
helm repo update
helm pull chartmuseum/gh-runner --version=0.0.8 --untar --untardir ./charts
- name: Deploy to Staging
env:
IMAGE_TAG: ${{ steps.lookup.outputs.version }}
HELM_NAME: ephemeral-${{ github.event.pull_request.number }}
NAMESPACE: docs-staging
GKE_PROJECT: fetch-ai-sandbox
GKE_CLUSTER: london-b
GKE_ZONE: europe-west2-b
PR_NUMBER: ${{ github.event.pull_request.number }}
DNS: docs-ephemeral-${{ github.event.pull_request.number }}.sandbox-london-b.fetch-ai.com
ADDITIONAL_DNS: ${{ github.event.pull_request.number }}.staging.fetch-ai.com
CERT: docs-ephemeral-${{ github.event.pull_request.number }}
CERT_NAME: docs-ephemeral-cert-${{ github.event.pull_request.number }}
EPHEMERAL: true
run: |
gcloud components install gke-gcloud-auth-plugin
gcloud container clusters get-credentials $GKE_CLUSTER \
--zone $GKE_ZONE \
--project $GKE_PROJECT
helm upgrade --install --wait --timeout 300s $HELM_NAME \
./charts/gh-runner/ \
--set-string website.image.tag=$IMAGE_TAG \
--set-string prVersion=${{ github.event.pull_request.number }} \
-n $NAMESPACE \
--set-string dns.name=$DNS \
--set-string tls.cert=$CERT \
--set-string tls.certName=$CERT_NAME \
--set dns.additionalHosts[0]=$ADDITIONAL_DNS