Merge pull request #934 from autonomys/feat/improve-taskboard-setup #5
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 Subql Green (staging) | |
on: | |
push: | |
branches: | |
- main | |
paths: | |
- "indexers/**" | |
env: | |
DOCKER_HOST: ssh://${{ secrets.SSH_USER }}@${{ secrets.SUBQL_HOST }} | |
DEPLOY_PATH: /home/${{ secrets.SSH_USER }}/astral | |
BRANCH_NAME: ${{ github.ref_name }} | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set Hasura secret | |
id: set_secret | |
run: echo "hasura_secret=${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}" >> $GITHUB_ENV | |
- name: Install SSH key | |
uses: webfactory/ssh-agent@v0.9.0 | |
with: | |
ssh-private-key: ${{ secrets.SERVER_SSH_PRIVATE_KEY }} | |
- name: Add SSH host key fingerprint | |
run: | | |
ssh-keyscan -H ${{ secrets.SUBQL_HOST }} >> ~/.ssh/known_hosts | |
- name: Deploy with Docker Compose | |
env: | |
SSH_USER: ${{ secrets.SSH_USER }} | |
HASURA_GRAPHQL_ADMIN_SECRET: ${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }} | |
HASURA_GRAPHQL_JWT_SECRET: ${{ secrets.HASURA_GRAPHQL_JWT_SECRET }} | |
run: | | |
mkdir -p ~/.ssh | |
ssh-keyscan -H ${{ secrets.SUBQL_HOST }} >> ~/.ssh/known_hosts | |
ssh ${SSH_USER}@${{ secrets.SUBQL_HOST }} " | |
if [ ! -d ${DEPLOY_PATH} ]; then | |
git clone https://github.com/autonomys/astral.git ${DEPLOY_PATH} | |
else | |
cd ${DEPLOY_PATH} | |
git pull | |
fi | |
git checkout ${BRANCH_NAME} | |
# Securely update the .env file | |
if [ ! -f .env ]; then | |
echo 'HASURA_GRAPHQL_ADMIN_SECRET=${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}' > .env | |
echo 'HASURA_GRAPHQL_JWT_SECRET=${{ secrets.HASURA_GRAPHQL_JWT_SECRET }}' >> .env | |
else | |
sed -i '/^HASURA_GRAPHQL_ADMIN_SECRET=/d' .env | |
echo 'HASURA_GRAPHQL_ADMIN_SECRET=${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}' >> .env | |
sed -i '/^HASURA_GRAPHQL_JWT_SECRET=/d' .env | |
echo 'HASURA_GRAPHQL_JWT_SECRET=${{ secrets.HASURA_GRAPHQL_JWT_SECRET }}' >> .env | |
fi | |
export $(grep -v '^#' /home/${{ secrets.SSH_USER }}/astral/.env | xargs) | |
cd /home/${{ secrets.SSH_USER }}/astral/indexers | |
yarn build-dictionary | |
npx lerna run codegen | |
npx lerna run build | |
sudo docker compose -p prod-astral-indexers -f /home/${{ secrets.SSH_USER }}/astral/docker-compose.yml -f /home/${{ secrets.SSH_USER }}/astral/docker-compose.prod.yml --profile dictionary --profile task --profile taurus up -d --remove-orphans | |
echo 'Installation Complete' | |
" | |
- name: Notify on failure | |
if: failure() | |
env: | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} | |
uses: 8398a7/action-slack@v3 | |
with: | |
status: ${{ job.status }} | |
fields: repo,message,commit,author,action,eventName,ref,workflow,job | |
author_name: Deployment failed | |
mention: here | |
if_mention: failure,cancelled | |
job_name: Deploy Subql Green (staging) | |
channel: alerts | |
icon_emoji: ":github:" |