name: Deploy Matrix Bot on: push: branches: [ "main" ] workflow_dispatch: jobs: deploy: runs-on: self-hosted env: DOCKER_HOST: unix:///var/run/docker.sock DOCKER_BUILDKIT: "0" steps: - name: Checkout uses: actions/checkout@v4 - name: Build image run: | docker build -t matrix-bot:latest --build-arg TARGETOS=linux --build-arg TARGETARCH=amd64 . docker image inspect matrix-bot:latest - name: Stop and remove old container run: | docker stop matrix-bot || true docker rm matrix-bot || true - name: Ensure data directory run: | mkdir -p .gitea/matrix-bot-data - name: Run container env: MATRIX_HOMESERVER: ${{ secrets.MATRIX_HOMESERVER }} MATRIX_USER_ID: ${{ secrets.MATRIX_USER_ID }} MATRIX_ACCESS_TOKEN: ${{ secrets.TOKEN }} MATRIX_DEVICE_ID: ${{ secrets.MATRIX_DEVICE_ID }} MATRIX_PICKLE_KEY: ${{ secrets.MATRIX_PICKLE_KEY }} MATRIX_RECOVERY_KEY: ${{ secrets.MATRIX_RECOVERY_KEY }} MATRIX_USERNAME: ${{ secrets.MATRIX_USERNAME }} MATRIX_PASSWORD: ${{ secrets.MATRIX_PASSWORD }} MATRIX_ROOM_ID: ${{ secrets.MATRIX_ROOM_ID }} run: | docker run -d --name matrix-bot \ --restart unless-stopped \ -e MATRIX_HOMESERVER \ -e MATRIX_USER_ID \ -e MATRIX_ACCESS_TOKEN \ -e MATRIX_DEVICE_ID \ -e MATRIX_PICKLE_KEY \ -e MATRIX_RECOVERY_KEY \ -e MATRIX_USERNAME \ -e MATRIX_PASSWORD \ -e MATRIX_ROOM_ID \ -e MATRIX_CRYPTO_DB=/data/crypto.db \ -v "${{ github.workspace }}/.gitea/matrix-bot-data:/data" \ matrix-bot:latest