Skip to content

Feat: avg price (#335) #115

Feat: avg price (#335)

Feat: avg price (#335) #115

name: Build Docker Image and Push Helm Chart
on:
push:
branches:
- develop
- main
tags:
- "*"
workflow_dispatch:
jobs:
docker:
runs-on: ${{ vars.RUNNER_SCALE_SET }}
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
REPO_NAME: ${{ github.event.repository.name }}
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
steps:
- name: Import management secrets from Vault
id: management
uses: hashicorp/vault-action@v3
with:
url: ${{ vars.VAULT_ADDR }}
path: management
method: kubernetes
role: ${{ vars.VAULT_ROLE }}
secrets: |
management/data/${{ vars.VAULT_SECRET_PATH }} *
- name: Import production secrets from Vault
id: production
uses: hashicorp/vault-action@v3
with:
url: ${{ vars.VAULT_ADDR }}
path: management
method: kubernetes
role: production-${{ env.REPO_NAME }}
secrets: |
production/data/${{ env.REPO_NAME }}/${{ env.REPO_NAME }} *
- name: Checkout code
uses: actions/checkout@v4
- name: Create .env file
run: |
echo VITE_FEATURE_TOGGLE_CLIENT_KEY=${{ env.VITE_FEATURE_TOGGLE_CLIENT_KEY }} >> .env
echo VITE_BRANCH_NAME=${{ env.BRANCH_NAME }} >> .env
- name: Configure npm authentication for GitHub Registry
run: |
echo "@compolabs:registry=https://npm.pkg.github.com/" > .npmrc
echo "//npm.pkg.github.com/:_authToken=${{ env.NODE_AUTH_TOKEN }}" >> .npmrc
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ env.DOCKER_USERNAME }}
password: ${{ env.DOCKER_PASSWORD }}
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_PROJECT }}/${{ env.REPO_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
- name: Build and Push Docker image
uses: docker/build-push-action@v6
with:
context: . # https://github.com/docker/build-push-action#git-context
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
helm:
if: github.ref_type == 'tag'
runs-on: ${{ vars.RUNNER_SCALE_SET }}
steps:
- name: Import Secrets from Vault
id: vault
uses: hashicorp/vault-action@v3
with:
url: ${{ vars.VAULT_ADDR }}
path: management
method: kubernetes
role: ${{ vars.VAULT_ROLE }}
secrets: |
management/data/${{ vars.VAULT_SECRET_PATH }} *
- name: Checkout code
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
tags: |
type=semver,pattern={{version}}
flavor: |
latest=false
- name: Install Helm
uses: azure/setup-helm@v4.2.0
- name: Push Helm Chart
uses: appany/helm-oci-chart-releaser@v0.3.0
with:
name: ${{ github.event.repository.name }}
repository: charts
tag: ${{ steps.meta.outputs.tags }}
path: deploy/chart
registry: ${{ env.DOCKER_REGISTRY }}
registry_username: ${{ env.DOCKER_USERNAME }}
registry_password: ${{ env.DOCKER_PASSWORD }}