From 690b2f6a57627a507590b5d03cb30d0c06f06265 Mon Sep 17 00:00:00 2001 From: mctaylors Date: Sun, 1 Jun 2025 11:45:07 +0300 Subject: [PATCH] ci: add build-push.yaml (#2) Reviewed-on: https://git.mctaylors.ru/mctaylors/danbooru-bot/pulls/2 Co-authored-by: mctaylors Co-committed-by: mctaylors --- .forgejo/workflows/build-push.yaml | 54 ++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .forgejo/workflows/build-push.yaml diff --git a/.forgejo/workflows/build-push.yaml b/.forgejo/workflows/build-push.yaml new file mode 100644 index 0000000..094525c --- /dev/null +++ b/.forgejo/workflows/build-push.yaml @@ -0,0 +1,54 @@ +on: + push: + branches: ["master"] + +jobs: + upload: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.13 + uses: actions/setup-python@v5 + with: + python-version: '3.13' + - name: Install dependencies + run: | + pip install -r requirements.txt + pip install pyinstaller + - name: Build binary + run: pyinstaller --onefile main.py + - name: Setup SSH key + run: | + install -m 600 -D /dev/null ~/.ssh/id_ed25519 + echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_ed25519 + ssh-keyscan -H -p $SSH_PORT $SSH_HOST > ~/.ssh/known_hosts + shell: bash + env: + SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}} + SSH_PORT: ${{secrets.SSH_PORT}} + SSH_HOST: ${{secrets.SSH_HOST}} + - 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 binary + run: scp -P $SSH_PORT dist/main $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_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}}