From 9b175772ec48a49da78f609bff24d19793cf7d1f Mon Sep 17 00:00:00 2001 From: mctaylors Date: Wed, 6 Nov 2024 22:41:16 +0300 Subject: [PATCH] Add automatic deployment Signed-off-by: mctaylors --- .forgejo/workflows/push.yml | 96 +++++++++++++++++++++++++ .gitignore | 5 +- __pycache__/client.cpython-312.pyc | Bin 0 -> 7125 bytes __pycache__/extensions.cpython-312.pyc | Bin 0 -> 456 bytes main.py | 1 + 5 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 .forgejo/workflows/push.yml create mode 100644 __pycache__/client.cpython-312.pyc create mode 100644 __pycache__/extensions.cpython-312.pyc diff --git a/.forgejo/workflows/push.yml b/.forgejo/workflows/push.yml new file mode 100644 index 0000000..7c03133 --- /dev/null +++ b/.forgejo/workflows/push.yml @@ -0,0 +1,96 @@ +name: Update production + +on: + push: + branches: + - master + +jobs: + build-upload-artifact: + name: Build and upload Lurker as artifact + runs-on: docker + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Python 3.13 + uses: actions/setup-python@v5 + with: + python-version: '3.13.0' + + - name: Setup virtual environment + run: python -m venv .venv/ + + - name: Install necessary packages using pip + run: ./.venv/bin/pip install $PIP_PACKAGES + env: + PIP_PACKAGES: ${{vars.PIP_PACKAGES}} + + - name: Build binary + run: ./.venv/bin/pyinstaller $PYINSTALLER_FLAGS main.py + env: + PYINSTALLER_FLAGS: ${{vars.PYINSTALLER_FLAGS}} + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: lurker-bin + path: dist/ + + update-production: + name: Update Lurker on production + runs-on: docker + + steps: + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: lurker-bin + + - name: Copy SSH key + run: | + install -m 600 -D /dev/null ~/.ssh/id_ed25519 + echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 + shell: bash + env: + SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}} + + - name: Generate SSH known hosts file + run: | + ssh-keyscan -H -p $SSH_PORT $SSH_HOST > ~/.ssh/known_hosts + shell: bash + env: + SSH_HOST: ${{secrets.SSH_HOST}} + SSH_PORT: ${{secrets.SSH_PORT}} + + - name: Stop currently running instance + run: | + ssh -p $SSH_PORT $SSH_USER@$SSH_HOST $STOP_COMMAND + shell: bash + env: + SSH_PORT: ${{secrets.SSH_PORT}} + SSH_USER: ${{secrets.SSH_USER}} + SSH_HOST: ${{secrets.SSH_HOST}} + STOP_COMMAND: ${{vars.STOP_COMMAND}} + + - name: Upload artifact + run: | + scp -r -P $SSH_PORT $UPLOAD_FROM $SSH_USER@$SSH_HOST:$UPLOAD_TO + shell: bash + env: + SSH_PORT: ${{secrets.SSH_PORT}} + SSH_USER: ${{secrets.SSH_USER}} + SSH_HOST: ${{secrets.SSH_HOST}} + UPLOAD_FROM: ${{vars.UPLOAD_FROM}} + UPLOAD_TO: ${{vars.UPLOAD_TO}} + + - name: Start new instance + run: | + ssh -p $SSH_PORT $SSH_USER@$SSH_HOST $START_COMMAND + shell: bash + env: + SSH_PORT: ${{secrets.SSH_PORT}} + SSH_USER: ${{secrets.SSH_USER}} + SSH_HOST: ${{secrets.SSH_HOST}} + START_COMMAND: ${{vars.START_COMMAND}} diff --git a/.gitignore b/.gitignore index 3e8ecb4..e40e3cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ .idea/ -.venv/ \ No newline at end of file +.venv/ +build/ +dist/ +*.spec \ No newline at end of file diff --git a/__pycache__/client.cpython-312.pyc b/__pycache__/client.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..34012e1c39bd90d95142a1e1a27179192b97b11e GIT binary patch literal 7125 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 Q>%1x#c~!nLfOufT01!0#-T(jq literal 0 HcmV?d00001 diff --git a/__pycache__/extensions.cpython-312.pyc b/__pycache__/extensions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1011015102e2b30a3351f35f18979d5838ece320 GIT binary patch literal 456 zcmX@j%ge>Uz`!uELOVTyfq~&Mhy%lnP{wDFlIaX73@r>%43&(UOvx}AkOEEy1_ovZ z28PcC3=9m@8B!Q)7_va(Xm~b53R4Y3789B<0|Ucsh7{%+hAbAWGAuO=S!`HkSm$yE zGib8;-C~TcVvg0YsbaCyRM5D^SaFL{QMiEdqMTc-<(VlZ8MoLn zQZv&tN;Da7v1BIa=M{rIqVUT^KO;XkRX;bmB(X9lzo=M0pfWilu_!m7C_gJTxujU% zr?e9kwSJFK~NZVDb74@}Zw5BiNvo t3`M*Q3=Bow3=9mnIBatBQ%ZAE?TYwec7Vh`Ff%eTer951^kxJr1^^5rW;Fl+ literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 1a480c1..5a71573 100644 --- a/main.py +++ b/main.py @@ -4,6 +4,7 @@ import client import asyncio from next.ext.commands import DefaultHelpCommand +from sys import exit async def main():