Skip to content
This repository has been archived by the owner on Apr 14, 2024. It is now read-only.

Version 1.0.0

Version 1.0.0 #4

name: Deploy Production
on:
push:
tags:
- "v*.*.*"
workflow_dispatch: {}
jobs:
build:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: docker build -t sapphire:${{ github.ref_name }} --target slim .
deploy:
needs: [build]
runs-on: self-hosted
steps:
- name: Set environment variables
run: |
echo "PORT=${PORT_PRODUCTION}" >> $GITHUB_ENV
echo "HABR_OAUTH2_CLIENT_ID_NAME=${HABR_OAUTH2_CLIENT_ID_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "HABR_OAUTH2_CLIENT_SECRET_NAME=${HABR_OAUTH2_CLIENT_SECRET_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "HABR_API_KEY_NAME=${HABR_API_KEY_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "HABR_CAREER_API_KEY_NAME=${HABR_CAREER_API_KEY_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "JWT_ACCESS_TOKEN_PRIVATE_KEY_NAME=${JWT_ACCESS_TOKEN_PRIVATE_KEY_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "JWT_ACCESS_TOKEN_PUBLIC_KEY_NAME=${JWT_ACCESS_TOKEN_PUBLIC_KEY_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "JWT_REFRESH_TOKEN_PRIVATE_KEY_NAME=${JWT_REFRESH_TOKEN_PRIVATE_KEY_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "JWT_REFRESH_TOKEN_PUBLIC_KEY_NAME=${JWT_REFRESH_TOKEN_PUBLIC_KEY_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "POSTGRESQL_PASSWORD_NAME=${POSTGRESQL_PASSWORD_NAME_PRODUCTION}" >> $GITHUB_ENV
echo "DATABASE_DIR=${DATABASE_DIR_PRODUCTION}" >> $GITHUB_ENV
echo "REDIS_DIR=${REDIS_DIR_PRODUCTION}" >> $GITHUB_ENV
echo "BROKER_DIR=${BROKER_DIR_PRODUCTION}" >> $GITHUB_ENV
echo "USERS_MEDIA_DIR_PATH=${USERS_MEDIA_DIR_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "PROJECTS_MEDIA_DIR_PATH=${PROJECTS_MEDIA_DIR_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "USERS_DB_DSN=${USERS_DB_DSN_PRODUCTION}" >> $GITHUB_ENV
echo "USERS_ROOT_URL=${USERS_ROOT_URL_PRODUCTION}" >> $GITHUB_ENV
echo "USERS_ROOT_PATH=${USERS_ROOT_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "USERS_ALLOWED_ORIGINS=${USERS_ALLOWED_ORIGINS_PRODUCTION}" >> $GITHUB_ENV
echo "USERS_HABR_OAUTH2_CALLBACK_URL=${USERS_HABR_OAUTH2_CALLBACK_URL_PRODUCTION}" >> $GITHUB_ENV
echo "STORAGE_DB_DSN=${STORAGE_DB_DSN_PRODUCTION}" >> $GITHUB_ENV
echo "STORAGE_ROOT_URL=${STORAGE_ROOT_URL_PRODUCTION}" >> $GITHUB_ENV
echo "STORAGE_ROOT_PATH=${STORAGE_ROOT_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "STORAGE_ALLOWED_ORIGINS=${STORAGE_ALLOWED_ORIGINS_PRODUCTION}" >> $GITHUB_ENV
echo "PROJECTS_DB_DSN=${PROJECTS_DB_DSN_PRODUCTION}" >> $GITHUB_ENV
echo "PROJECTS_ROOT_URL=${PROJECTS_ROOT_URL_PRODUCTION}" >> $GITHUB_ENV
echo "PROJECTS_ROOT_PATH=${PROJECTS_ROOT_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "PROJECTS_ALLOWED_ORIGINS=${PROJECTS_ALLOWED_ORIGINS_PRODUCTION}" >> $GITHUB_ENV
echo "NOTIFICATIONS_DB_DSN=${NOTIFICATIONS_DB_DSN_PRODUCTION}" >> $GITHUB_ENV
echo "NOTIFICATIONS_ROOT_URL=${NOTIFICATIONS_ROOT_URL_PRODUCTION}" >> $GITHUB_ENV
echo "NOTIFICATIONS_ROOT_PATH=${NOTIFICATIONS_ROOT_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "NOTIFICATIONS_ALLOWED_ORIGINS=${NOTIFICATIONS_ALLOWED_ORIGINS_PRODUCTION}" >> $GITHUB_ENV
echo "MESSENGER_DB_DSN=${MESSENGER_DB_DSN_PRODUCTION}" >> $GITHUB_ENV
echo "MESSENGER_ROOT_URL=${MESSENGER_ROOT_URL_PRODUCTION}" >> $GITHUB_ENV
echo "MESSENGER_ROOT_PATH=${MESSENGER_ROOT_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "MESSENGER_ALLOWED_ORIGINS=${MESSENGER_ALLOWED_ORIGINS_PRODUCTION}" >> $GITHUB_ENV
echo "SWAGGER_ROOT_PATH=${SWAGGER_ROOT_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "KAFKA_UI_ROOT_PATH=${KAFKA_UI_ROOT_PATH_PRODUCTION}" >> $GITHUB_ENV
echo "KAFKA_UI_PASSWORD=${KAFKA_UI_PASSWORD_PRODUCTION}" >> $GITHUB_ENV
echo "SAPPHIRE_IMAGE=sapphire:${GITHUB_SHA}" >> $GITHUB_ENV
- name: Deploy
run: docker stack deploy -c docker-compose.yaml sapphire-production