Skip to content

Deploy to Rill Cloud #4674

Deploy to Rill Cloud

Deploy to Rill Cloud #4674

Workflow file for this run

# This workflow triggers deployment with Rill Cloud helm charts
# Each merge to main branch is build with github sha tag and published to Rill Cloud.
name: Deploy to Rill Cloud
on:
create:
push:
tags:
- "**"
branches:
- "main"
- "release**"
workflow_dispatch:
env:
RELEASE: ${{ startsWith(github.ref, 'refs/tags/v') }}
jobs:
release:
# https://github.com/orgs/community/discussions/54860
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' || ( github.event_name == 'create' && startsWith(github.ref_name, 'release') )
name: Deploy to Rill Cloud
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.22
- name: Authenticate GCloud
uses: google-github-actions/auth@v2
with:
credentials_json: "${{ secrets.RILL_BINARY_SA }}"
- name: Set up GCloud SDK
uses: google-github-actions/setup-gcloud@v2
- name: Build & Publish Rill docker image
run: |-
if [ ${RELEASE} == "false" ]; then
echo "Fetch tags to get the last tagged version"
git fetch --all --tags;
fi
# Embed DuckDB extensions in the Rill binary
go run scripts/embed_duckdb_ext/main.go
if [ ${RELEASE} == "true" ]; then
go build -o rill -mod=readonly -ldflags="-s -w -X main.Version=$(git describe --tags `git rev-list --tags --max-count=1`) -X main.Commit=${GITHUB_SHA} -X main.BuildDate=$(date +%FT%T)" cli/main.go
else
go build -o rill -mod=readonly -ldflags="-s -w -X main.Commit=${GITHUB_SHA} -X main.BuildDate=$(date +%FT%T)" cli/main.go
fi
gcloud auth configure-docker
docker build -t gcr.io/rilldata/rill-headless:${GITHUB_SHA} .
docker push gcr.io/rilldata/rill-headless:${GITHUB_SHA}
if [ ${RELEASE} == "true" ]; then
docker tag gcr.io/rilldata/rill-headless:${GITHUB_SHA} gcr.io/rilldata/rill-headless:${GITHUB_REF_NAME}
docker push gcr.io/rilldata/rill-headless:${GITHUB_REF_NAME}
fi
- name: Trigger Rill Cloud deployment
run: |-
set -e
curl -X POST https://api.github.com/repos/rilldata/rill-helm-charts/dispatches \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "Authorization: token ${{ secrets.GORELEASER_ACCESS_TOKEN }}" \
--data '{"event_type": "Deploying Tag: '"${GITHUB_REF_NAME}"'", "client_payload": { "github_sha": "'"${GITHUB_SHA}"'", "tag": "'"${GITHUB_REF_NAME}"'", "release": "${{ env.RELEASE }}"}}'