Skip to content

[FEAT]: Dashboard page (#458) #763

[FEAT]: Dashboard page (#458)

[FEAT]: Dashboard page (#458) #763

Workflow file for this run

name: Hoop Release
on:
push:
tags:
- '*.*.*'
jobs:
test:
name: Test
runs-on: ubuntu-latest
environment: production
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- name: Checkout libhoop
uses: actions/checkout@v3
with:
repository: hoophq/libhoop
path: './libhoop'
token: ${{ secrets.GH_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '>=1.22.4'
cache-dependency-path: '**/go.sum'
- name: Test
run: make test
darwin-amd64:
runs-on: ubuntu-latest
name: Build Darwin Amd64
environment: production
needs: [test]
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- name: Checkout libhoop
uses: actions/checkout@v3
with:
repository: hoophq/libhoop
path: './libhoop'
token: ${{ secrets.GH_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.22.4'
cache-dependency-path: '**/go.sum'
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: amd64
env:
GIT_TAG: ${{ env.GIT_TAG }}
run: GOOS=darwin GOARCH=amd64 make build
- uses: actions/upload-artifact@v3
with:
name: dist-artifacts
path: dist/
darwin-arm64:
runs-on: ubuntu-latest
name: Build Darwin Arm64
environment: production
needs: [test]
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- name: Checkout libhoop
uses: actions/checkout@v3
with:
repository: hoophq/libhoop
path: './libhoop'
token: ${{ secrets.GH_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.22.4'
cache-dependency-path: '**/go.sum'
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build
env:
GIT_TAG: ${{ env.GIT_TAG }}
run: GOOS=darwin GOARCH=arm64 make build
- uses: actions/upload-artifact@v3
with:
name: dist-artifacts
path: dist/
windows-amd64:
runs-on: ubuntu-latest
name: Build Windows Amd64
environment: production
needs: [test]
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- name: Checkout libhoop
uses: actions/checkout@v3
with:
repository: hoophq/libhoop
path: './libhoop'
token: ${{ secrets.GH_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.22.4'
cache-dependency-path: '**/go.sum'
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build
env:
GIT_TAG: ${{ env.GIT_TAG }}
run: GOOS=windows GOARCH=amd64 make build
- uses: actions/upload-artifact@v3
with:
name: dist-artifacts
path: dist/
windows-arm64:
runs-on: ubuntu-latest
name: Build Windows Arm64
environment: production
needs: [test]
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- name: Checkout libhoop
uses: actions/checkout@v3
with:
repository: hoophq/libhoop
path: './libhoop'
token: ${{ secrets.GH_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.22.4'
cache-dependency-path: '**/go.sum'
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build
env:
GIT_TAG: ${{ env.GIT_TAG }}
run: GOOS=windows GOARCH=arm64 make build
- uses: actions/upload-artifact@v3
with:
name: dist-artifacts
path: dist/
linux-amd64:
runs-on: ubuntu-latest
name: Build Linux Amd64
environment: production
needs: [test]
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- name: Checkout libhoop
uses: actions/checkout@v3
with:
repository: hoophq/libhoop
path: './libhoop'
token: ${{ secrets.GH_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.22.4'
cache-dependency-path: '**/go.sum'
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build
env:
GIT_TAG: ${{ env.GIT_TAG }}
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
SEGMENT_API_KEY: ${{ secrets.SEGMENT_API_KEY }}
run: GOOS=linux GOARCH=amd64 make build
- uses: actions/upload-artifact@v3
with:
name: dist-artifacts
path: dist/
linux-arm64:
runs-on: ubuntu-latest
name: Build Linux Arm64
environment: production
needs: [test]
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- name: Checkout libhoop
uses: actions/checkout@v3
with:
repository: hoophq/libhoop
path: './libhoop'
token: ${{ secrets.GH_TOKEN }}
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '>=1.22.4'
cache-dependency-path: '**/go.sum'
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build
env:
GIT_TAG: ${{ env.GIT_TAG }}
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
SEGMENT_API_KEY: ${{ secrets.SEGMENT_API_KEY }}
run: GOOS=linux GOARCH=arm64 make build
- uses: actions/upload-artifact@v3
with:
name: dist-artifacts
path: dist/
build-webapp:
runs-on: ubuntu-latest
name: Build Webapp
environment: production
needs: [test]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '11'
- name: Install clojure tools
uses: DeLaGuardo/setup-clojure@3.5
with:
cli: 1.11.1.1347 # releases: https://clojure.org/releases/tools
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
cache-dependency-path: webapp/package-lock.json
- name: Build
run: make build-webapp
- uses: actions/upload-artifact@v3
with:
name: dist-artifacts
path: dist/
docker-publish:
runs-on: ubuntu-latest
name: Docker Publish
environment: production
needs:
- darwin-amd64
- darwin-arm64
- windows-amd64
- windows-arm64
- linux-amd64
- linux-arm64
- build-webapp
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: hoophq/hoop
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_LOGIN }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: actions/download-artifact@v3
with:
name: 'dist-artifacts'
path: dist/
- name: Extract Webapp
run: make extract-webapp
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
docker-publish-agent:
runs-on: ubuntu-latest
name: Docker Publish Agent
environment: production
needs:
- darwin-amd64
- darwin-arm64
- windows-amd64
- windows-arm64
- linux-amd64
- linux-arm64
- build-webapp
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: hoophq/hoopdev
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_LOGIN }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: actions/download-artifact@v3
with:
name: 'dist-artifacts'
path: dist/
- name: Build and Push
uses: docker/build-push-action@v4
with:
file: ./Dockerfile.dev
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
docker-publish-hooplabs-arm64:
runs-on: GitHub-Linux-Arm-Runner
name: Dck Publish Labs (arm64)
environment: production
needs:
- darwin-amd64
- darwin-arm64
- windows-amd64
- windows-arm64
- linux-amd64
- linux-arm64
- build-webapp
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: hoophq/hooplabs
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_LOGIN }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: actions/download-artifact@v3
with:
name: 'dist-artifacts'
path: dist/
- name: Extract Webapp
run: make extract-webapp
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build Gateway Bundle
env:
GIT_TAG: ${{ env.GIT_TAG }}
GOARCH: arm64
run: make build-gateway-bundle && mv ./dist ./deploy/docker-compose/dist
- name: Build and push
uses: docker/build-push-action@v4
with:
file: deploy/docker-compose/Dockerfile
context: deploy/docker-compose
platforms: linux/arm64
provenance: false
sbom: false
push: true
tags: |
hoophq/hooplabs:${{ github.sha }}-arm64
docker-publish-hooplabs-amd64:
runs-on: ubuntu-latest
name: Dck Publish Labs (amd64)
environment: production
needs:
- darwin-amd64
- darwin-arm64
- windows-amd64
- windows-arm64
- linux-amd64
- linux-arm64
- build-webapp
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: hoophq/hooplabs
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_LOGIN }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: actions/download-artifact@v3
with:
name: 'dist-artifacts'
path: dist/
- name: Extract Webapp
run: make extract-webapp
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build Gateway Bundle
env:
GIT_TAG: ${{ env.GIT_TAG }}
GOARCH: amd64
run: make build-gateway-bundle && mv ./dist ./deploy/docker-compose/dist
- name: Build and push
uses: docker/build-push-action@v4
with:
file: deploy/docker-compose/Dockerfile
context: deploy/docker-compose
platforms: linux/amd64
provenance: false
sbom: false
push: true
tags: |
hoophq/hooplabs:${{ github.sha }}-amd64
docker-publish-multiarch:
runs-on: ubuntu-latest
name: Publish Labs Image
environment: production
needs:
- docker-publish-hooplabs-amd64
- docker-publish-hooplabs-arm64
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: hoophq/hooplabs
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_LOGIN }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Create SHA manifest and push
env:
GIT_TAG: ${{ env.GIT_TAG }}
run: |
docker manifest create hoophq/hooplabs:${{ env.GIT_TAG }} \
--amend hoophq/hooplabs:${{ github.sha }}-amd64 \
--amend hoophq/hooplabs:${{ github.sha }}-arm64
docker manifest create hoophq/hooplabs:latest \
--amend hoophq/hooplabs:${{ github.sha }}-amd64 \
--amend hoophq/hooplabs:${{ github.sha }}-arm64
docker manifest push hoophq/hooplabs:${{ env.GIT_TAG }}
docker manifest push hoophq/hooplabs:latest
publish-release:
runs-on: ubuntu-latest
name: Publish Release
environment: production
needs:
- docker-publish
- docker-publish-agent
- docker-publish-multiarch
steps:
- name: Checkout Hoop
uses: actions/checkout@v3
- uses: actions/download-artifact@v3
id: download
with:
name: 'dist-artifacts'
path: dist/
- name: Set Git Tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Build Gateway Bundle (amd64)
env:
GIT_TAG: ${{ env.GIT_TAG }}
GOARCH: amd64
run: make build-gateway-bundle
- name: Build Gateway Bundle (arm64)
env:
GIT_TAG: ${{ env.GIT_TAG }}
GOARCH: arm64
run: make build-gateway-bundle
- name: Build Helm Chart
env:
GIT_TAG: ${{ env.GIT_TAG }}
run: make build-helm-chart
- name: Publish Release
env:
GIT_TAG: ${{ env.GIT_TAG }}
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
AWS_REGION: us-east-1
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: make release
- name: Publish Brew Recipe
run: gh workflow run release.yml -f version=$GIT_TAG --repo hoophq/brew
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
GIT_TAG: ${{ env.GIT_TAG }}