From ad704a4e32c0276aa92f41a9402876169f8b92de Mon Sep 17 00:00:00 2001 From: Eugene Michkov Date: Mon, 12 Aug 2024 22:36:39 +0300 Subject: [PATCH] chore: add semver --- .github/workflows/release.yml | 56 +++++++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e2bb1a1..a273ad0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -50,3 +50,59 @@ jobs: uses: softprops/action-gh-release@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + deploy: + runs-on: ubuntu-latest + needs: build + steps: + - uses: actions/checkout@v4 + + - name: Add SSH key + run: | + mkdir -p ~/.ssh + echo "${{ secrets.HELIOS_SSH }}" > ~/.ssh/helios_ssh + chmod 600 ~/.ssh/helios_ssh + + - name: Form environment variables + run: | + echo "GHCR_PAT=\"${{ secrets.GHCR_PAT }}\"" >> .env + echo "MASTER_BACKEND_PORT=\"${{ secrets.MASTER_BACKEND_PORT }}\"" >> .env + echo "MASTER_BACKEND_URL=\"${{ secrets.MASTER_BACKEND_URL }}\"" >> .env + echo "MASTER_METRICS_PORT=\"${{ secrets.MASTER_METRICS_PORT }}\"" >> .env + echo "MASTER_METRICS_URL=\"${{ secrets.MASTER_METRICS_URL }}\"" >> .env + echo "DATABASE_PORT=\"${{ secrets.DATABASE_PORT }}\"" >> .env + echo "DATABASE_NAME=\"${{ secrets.DATABASE_NAME }}\"" >> .env + echo "DATABASE_USER=\"${{ secrets.DATABASE_USER }}\"" >> .env + echo "DATABASE_PASSWORD=\"${{ secrets.DATABASE_PASSWORD }}\"" >> .env + echo "DATABASE_HOST=\"${{ secrets.DATABASE_HOST }}\"" >> .env + echo "DATABASE_URL=\"${{ secrets.DATABASE_URL }}\"" >> .env + echo "JWT_ACCESS_SECRET=\"${{ secrets.JWT_ACCESS_SECRET }}\"" >> .env + echo "JWT_REFRESH_SECRET=\"${{ secrets.JWT_REFRESH_SECRET }}\"" >> .env + echo "RUST_LOG=\"${{ secrets.RUST_LOG }}\"" >> .env + echo "HELIOS_DOMAIN=\"${{ secrets.HELIOS_DOMAIN }}\"" >> .env + echo "DO_AUTH_TOKEN=\"${{ secrets.DO_AUTH_TOKEN }}\"" >> .env + echo "TRAEFIK_AUTH=\"${{ secrets.TRAEFIK_AUTH }}\"" >> .env + echo "GRAFANA_USER=\"${{ secrets.GRAFANA_USER }}\"" >> .env + echo "GRAFANA_PASSWORD=\"${{ secrets.GRAFANA_PASSWORD }}\"" >> .env + echo "OAUTH_DISCORD_CLIENT_SECRET=\"${{ secrets.OAUTH_DISCORD_CLIENT_SECRET }}\"" >> .env + echo "OAUTH_DISCORD_CLIENT_ID=\"${{ secrets.OAUTH_DISCORD_CLIENT_ID }}\"" >> .env + echo "OAUTH_GITHUB_CLIENT_SECRET=\"${{ secrets.OAUTH_GITHUB_CLIENT_SECRET }}\"" >> .env + echo "OAUTH_GITHUB_CLIENT_ID=\"${{ secrets.OAUTH_GITHUB_CLIENT_ID }}\"" >> .env + echo "OAUTH_GOOGLE_CLIENT_SECRET=\"${{ secrets.OAUTH_GOOGLE_CLIENT_SECRET }}\"" >> .env + echo "OAUTH_GOOGLE_CLIENT_ID=\"${{ secrets.OAUTH_GOOGLE_CLIENT_ID }}\"" >> .env + echo "RESEND_API_KEY=\"${{ secrets.RESEND_API_KEY }}\"" >> .env + echo "SERVER_MODE=\"${{ secrets.SERVER_MODE }}\"" >> .env + + - name: Setup to DigitalOcean + run: | + ssh -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "echo ${{ secrets.GHCR_PAT }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin" + ssh -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "rm -rf docker-compose.yml .env compose/" + scp -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -P ${{ secrets.SSH_PORT }} docker-compose.yml ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:~/docker-compose.yml + scp -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -P ${{ secrets.SSH_PORT }} .env ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:~/.env + scp -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -P ${{ secrets.SSH_PORT }} -r compose/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:~/compose/ + + - name: Deploy to DigitalOcean + run: | + ssh -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker compose down" + ssh -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker compose pull" + ssh -o StrictHostKeyChecking=no -i ~/.ssh/helios_ssh -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker compose up -d --build" \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index c6f5534..806b872 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -819,7 +819,7 @@ dependencies = [ [[package]] name = "helios-master-backend" -version = "0.2.0" +version = "0.2.5-alpha" dependencies = [ "argon2", "axum", diff --git a/Cargo.toml b/Cargo.toml index d1fe0f6..c149f76 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "helios-master-backend" -version = "0.2.0" +version = "0.2.5-alpha" edition = "2021" [dependencies]