feat(cli): Implementing trigger preprocessor (#3990) #1532
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy main | |
concurrency: | |
group: "deploy-main" | |
cancel-in-progress: true | |
on: | |
push: | |
branches: [ main ] | |
paths-ignore: | |
- 'docs/**' | |
- 'cli/**' | |
# manual trigger | |
workflow_dispatch: | |
jobs: | |
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.mod' | |
cache: true | |
cache-dependency-path: go.mod | |
- 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: v2.0.1 | |
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.mod' | |
cache: true | |
cache-dependency-path: go.mod | |
- 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: goreleaser/goreleaser-action@v4 | |
if: steps.cache.outputs.cache-hit != 'true' | |
with: | |
distribution: goreleaser-pro | |
version: v2.0.1 | |
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 }} | |
- name: Trigger Infra Update | |
uses: peter-evans/repository-dispatch@v1 | |
with: | |
token: ${{ secrets.INFRA_REPO_PAT }} | |
repository: ${{ secrets.INFRA_REPO }} | |
event-type: update-tags | |
client-payload: '{"repo_name": "tracetest", "new_tag": "sha-${{ env.sha_short }}"}' |