1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-04-30 19:19:54 +03:00

Upload solution instead of updating container on production

Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
This commit is contained in:
Macintxsh 2024-11-15 19:56:38 +05:00
parent ed298202fc
commit cc0802e38e
Signed by: mctaylors
GPG key ID: 4EEF4F949A266EE2

View file

@ -35,10 +35,20 @@ jobs:
update-production: update-production:
name: Update Octobot on production name: Update Octobot on production
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
actions: read
contents: read
environment: production environment: production
needs: upload-image
steps: steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Publish solution
run: dotnet publish $PUBLISH_FLAGS
env:
PUBLISH_FLAGS: ${{vars.PUBLISH_FLAGS}}
- name: Copy SSH key - name: Copy SSH key
run: | run: |
install -m 600 -D /dev/null ~/.ssh/id_ed25519 install -m 600 -D /dev/null ~/.ssh/id_ed25519
@ -46,7 +56,7 @@ jobs:
shell: bash shell: bash
env: env:
SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}} SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}}
- name: Generate SSH known hosts file - name: Generate SSH known hosts file
run: | run: |
ssh-keyscan -H -p $SSH_PORT $SSH_HOST > ~/.ssh/known_hosts ssh-keyscan -H -p $SSH_PORT $SSH_HOST > ~/.ssh/known_hosts
@ -54,7 +64,7 @@ jobs:
env: env:
SSH_HOST: ${{secrets.SSH_HOST}} SSH_HOST: ${{secrets.SSH_HOST}}
SSH_PORT: ${{secrets.SSH_PORT}} SSH_PORT: ${{secrets.SSH_PORT}}
- name: Stop currently running instance - name: Stop currently running instance
run: | run: |
ssh -p $SSH_PORT $SSH_USER@$SSH_HOST $STOP_COMMAND ssh -p $SSH_PORT $SSH_USER@$SSH_HOST $STOP_COMMAND
@ -65,16 +75,16 @@ jobs:
SSH_HOST: ${{secrets.SSH_HOST}} SSH_HOST: ${{secrets.SSH_HOST}}
STOP_COMMAND: ${{vars.STOP_COMMAND}} STOP_COMMAND: ${{vars.STOP_COMMAND}}
- name: Update Docker image - name: Upload published solution
run: | run: |
ssh -p $SSH_PORT $SSH_USER@$SSH_HOST docker pull ghcr.io/$NAMESPACE/$IMAGE_NAME:latest scp -r -p $SSH_PORT $UPLOAD_FROM $SSH_USER@$SSH_HOST:$UPLOAD_TO
shell: bash shell: bash
env: env:
SSH_PORT: ${{secrets.SSH_PORT}} SSH_PORT: ${{secrets.SSH_PORT}}
SSH_USER: ${{secrets.SSH_USER}} SSH_USER: ${{secrets.SSH_USER}}
SSH_HOST: ${{secrets.SSH_HOST}} SSH_HOST: ${{secrets.SSH_HOST}}
NAMESPACE: ${{vars.NAMESPACE}} UPLOAD_FROM: ${{vars.UPLOAD_FROM}}
IMAGE_NAME: ${{vars.IMAGE_NAME}} UPLOAD_TO: ${{vars.UPLOAD_TO}}
- name: Start new instance - name: Start new instance
run: | run: |