Skip to content

CI deploy prod

CI deploy prod #51

name: CI deploy prod
on:
workflow_dispatch:
branches:
- main
permissions:
users:
- fibonacci998
inputs:
version:
type: string
description: Release version
required: true
jobs:
lint:
if: github.actor == 'fibonacci998'
uses: ./.github/workflows/lint.yml
secrets: inherit
test:
if: github.actor == 'fibonacci998'
uses: ./.github/workflows/test.yml
secrets: inherit
build:
if: github.actor == 'fibonacci998'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set environment variable
run: |
echo CONTAINER_RELEASE_IMAGE=ghcr.io/aura-nw/erascope:${{ inputs.version }}>> $GITHUB_ENV
- name: Build the Docker image and push it to the registry
env:
GITHUB_USERNAME: ${{ github.actor }}
GITHUB_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
run: |
./ci/build.sh
build-hasura-metadata:
runs-on: [ubuntu-latest]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set environment variable
run: |
SHORT_SHA_COMMIT=$(git rev-parse --short HEAD)
echo CONTAINER_RELEASE_IMAGE=ghcr.io/aura-nw/horoscope-hasura:${GITHUB_REF_NAME}_${SHORT_SHA_COMMIT} >> $GITHUB_ENV
- name: Check hasura changes
id: NUMBER_CHANGES
run: |
STATUS=`git diff HEAD^ HEAD hasura`
NUMBER_CHANGES=${#STATUS}
echo $NUMBER_CHANGES
echo NUMBER_CHANGES=$NUMBER_CHANGES >> $GITHUB_OUTPUT
- name: Build and push
if: ${{steps.NUMBER_CHANGES.outputs.NUMBER_CHANGES != 0}}
uses: docker/build-push-action@v4
with:
file: Dockerfile.hasura
context: .
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
tags: |
${{ env.CONTAINER_RELEASE_IMAGE }}
outputs:
NUMBER_CHANGES: ${{ steps.NUMBER_CHANGES.outputs.NUMBER_CHANGES }}
update-manifest:
needs: [lint, test, build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: imranismail/setup-kustomize@v2
- name: Set environment variable
run: |
echo CONTAINER_RELEASE_IMAGE=ghcr.io/aura-nw/erascope:${{ inputs.version }}>> $GITHUB_ENV
echo REPO_MANIFEST_NAME=gitops-prod >> $GITHUB_ENV
echo REPO_MANIFEST_URL=github.com/aura-nw/gitops-prod.git >> $GITHUB_ENV
echo REPO_MANIFEST_BRANCH=main >> $GITHUB_ENV
echo REPO_MANIFEST_ENV_MAIN=./clusters/k8s-xstaxy/horoscope-v2/horoscope-crawl-xstaxy >> $GITHUB_ENV
echo REPO_MANIFEST_TAG_IMAGE=image_erascope >> $GITHUB_ENV
- name: Update manifest
env:
PERSONAL_ACCESS_TOKEN: ${{ secrets.REGISTRY_PASSWORD }}
run: |
./ci/updateManifest.sh
update-manifest-hasura:
runs-on: [ubuntu-latest]
needs: [build-hasura-metadata]
if: ${{needs.build-hasura-metadata.outputs.NUMBER_CHANGES != 0}}
steps:
- uses: actions/checkout@v3
- uses: imranismail/setup-kustomize@v2
- name: Set environment variable
run: |
SHORT_SHA_COMMIT=$(git rev-parse --short HEAD)
echo CONTAINER_RELEASE_IMAGE=ghcr.io/aura-nw/horoscope-hasura:${GITHUB_REF_NAME}_${SHORT_SHA_COMMIT} >> $GITHUB_ENV
echo REPO_MANIFEST_NAME=gitops-prod >> $GITHUB_ENV
echo REPO_MANIFEST_URL=github.com/aura-nw/gitops-prod.git >> $GITHUB_ENV
echo REPO_MANIFEST_BRANCH=main >> $GITHUB_ENV
echo REPO_MANIFEST_ENV_MAIN=./clusters/k8s-xstaxy/horoscope-v2/horoscope-crawl-xstaxy >> $GITHUB_ENV
echo REPO_MANIFEST_TAG_IMAGE=image_hasura >> $GITHUB_ENV
- name: Update manifest
env:
PERSONAL_ACCESS_TOKEN: ${{ secrets.REGISTRY_PASSWORD }}
run: |
./ci/updateManifest.sh