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}}