Skip to content

feat(web): support disabled data stores (#3184) #1115

feat(web): support disabled data stores (#3184)

feat(web): support disabled data stores (#3184) #1115

Workflow file for this run

name: Deploy main
concurrency:
group: "deploy-main"
cancel-in-progress: true
on:
push:
branches: [ main ]
paths-ignore:
- 'docs/**'
- 'cli/**'
# manual trigger
workflow_dispatch:
jobs:
backend-arch-graph:
name: Generate backend architecture graph
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup go
uses: actions/setup-go@v3
with:
go-version-file: 'go.work'
cache: true
cache-dependency-path: go.work
- name: install graph tool
run: |
mkdir /tmp/go-arch
cd /tmp/go-arch
curl -SLO https://github.com/mathnogueira/golang-arch-viewer/archive/refs/heads/master.zip
unzip master.zip
cd golang-arch-viewer-master
make
mv dist/go-arch /tmp/go-arch/go-arch
- name: generate graph
run: |
cd server
mkdir -p ../dist/
/tmp/go-arch/go-arch -o ../dist/architecture.png
- name: Upload assets
uses: actions/upload-artifact@v3
with:
name: architecture-graph
path: dist/architecture.png
build-web:
name: build web
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 16
cache: npm
cache-dependency-path: web/package-lock.json
- name: Cache Build
id: cache-build
uses: actions/cache@v3
with:
path: web/build/
key: web-build-${{ hashFiles('web/*') }}
- run: cd web; npm ci
if: steps.cache-build.outputs.cache-hit != 'true'
- run: cd web; CI= npm run build
if: steps.cache-build.outputs.cache-hit != 'true'
- name: Upload assets
uses: actions/upload-artifact@v3
with:
name: tracetest-web
path: web/build/
prepare-go:
needs: [build-web]
strategy:
matrix:
GOOS: [linux, windows, darwin]
runs-on: ubuntu-latest
env:
DOCKER_CLI_EXPERIMENTAL: "enabled"
GORELEASER_KEY: ${{ secrets.GORELEASER_LICENSE }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
if: github.event_name != 'pull_request'
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Setup go
uses: actions/setup-go@v3
with:
go-version-file: 'go.work'
cache: true
cache-dependency-path: go.work
- shell: bash
run: |
echo "sha_short=$(git rev-parse --short=8 $GITHUB_SHA)" >> $GITHUB_ENV
- id: cache
uses: actions/cache@v3
with:
path: dist/${{ matrix.GOOS }}
key: ${{ matrix.GOOS }}-${{ env.sha_short }}
- uses: actions/download-artifact@v3
if: steps.cache.outputs.cache-hit != 'true'
with:
name: tracetest-web
path: web/build/
- uses: goreleaser/goreleaser-action@v4
if: steps.cache.outputs.cache-hit != 'true'
with:
distribution: goreleaser-pro
version: v1.19.2
args: release --clean --split --nightly
env:
GOOS: ${{ matrix.GOOS }}
VERSION: sha-${{ env.sha_short }}
TRACETEST_ENV: main
ANALYTICS_FE_KEY: ${{ secrets.ANALYTICS_FE_KEY }}
ANALYTICS_BE_KEY: ${{ secrets.ANALYTICS_BE_KEY }}
TRACETEST_DEFAULT_CLOUD_ENDPOINT: ${{ secrets.TRACETEST_DEFAULT_CLOUD_ENDPOINT }}
- name: Upload assets
uses: actions/upload-artifact@v3
with:
name: dist-${{ matrix.GOOS }}
path: dist/${{ matrix.GOOS }}
release:
runs-on: ubuntu-latest
needs: [prepare-go, build-web]
env:
DOCKER_CLI_EXPERIMENTAL: "enabled"
GORELEASER_KEY: ${{ secrets.GORELEASER_LICENSE }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FURY_TOKEN: ${{ secrets.FURY_TOKEN }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
if: github.event_name != 'pull_request'
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Setup go
uses: actions/setup-go@v3
with:
go-version-file: 'go.work'
cache: true
cache-dependency-path: go.work
- shell: bash
run: |
echo "sha_short=$(git rev-parse --short=8 $GITHUB_SHA)" >> $GITHUB_ENV
- uses: actions/download-artifact@v3
with:
path: dist/linux
name: dist-linux
- uses: actions/download-artifact@v3
with:
path: dist/darwin
name: dist-darwin
- uses: actions/download-artifact@v3
with:
path: dist/windows
name: dist-windows
- uses: actions/download-artifact@v3
with:
name: tracetest-web
path: web/build/
- uses: actions/download-artifact@v3
with:
name: architecture-graph
path: dist/architecture.png
- uses: goreleaser/goreleaser-action@v4
if: steps.cache.outputs.cache-hit != 'true'
with:
distribution: goreleaser-pro
version: v1.19.2
args: continue --merge
env:
VERSION: sha-${{ env.sha_short }}
TRACETEST_ENV: main
ANALYTICS_FE_KEY: ${{ secrets.ANALYTICS_FE_KEY }}
ANALYTICS_BE_KEY: ${{ secrets.ANALYTICS_BE_KEY }}
TRACETEST_DEFAULT_CLOUD_ENDPOINT: ${{ secrets.TRACETEST_DEFAULT_CLOUD_ENDPOINT }}
deploy-beta:
if: github.event_name == 'push'
needs: release
name: Deploy Beta
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: google-github-actions/setup-gcloud@94337306dda8180d967a56932ceb4ddcf01edae7
with:
service_account_key: ${{ secrets.GKE_SA_KEY }}
project_id: ${{ secrets.GKE_PROJECT }}
- run: |-
gcloud --quiet auth configure-docker
- uses: google-github-actions/get-gke-credentials@fb08709ba27618c31c09e014e1d8364b02e5042e
with:
cluster_name: ${{ secrets.GKE_CLUSTER }}
location: ${{ secrets.GKE_ZONE }}
credentials: ${{ secrets.GKE_SA_KEY }}
- name: Deploy
run: |
TAG=sha-$(git rev-parse --short=8 $GITHUB_SHA) \
NAME=tracetest-beta \
CONFIG_FILE=./k8s/tracetest.beta.yaml \
EXPOSE_HOST=beta.tracetest.io \
CERT_NAME=tracetest-beta \
BACKEND_CONFIG=tracetest-beta \
./k8s/deploy.sh