name: Build and deploy on: push: branches: - 'main' jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v5 with: push: true tags: smallbuster/request-bot:latest deploy: runs-on: ubuntu-latest needs: build steps: - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Pull Docker image from Docker Hub run: | docker pull smallbuster/request-bot:latest - name: Stop and remove existing container run: | docker stop request-bot || true && docker rm request-bot || true - name: Run Docker container run: | docker run -d --restart unless-stopped \ -e EMAIL_ADDRESS=${{secrets.EMAIL_ADDRESS}} \ -e EMAIL_PASSWORD=${{secrets.EMAIL_PASSWORD}} \ -e EMAIL_IMAP_SERVER=${{secrets.EMAIL_IMAP_SERVER}} \ -e EMAIL_IMAP_SERVER_PORT=${{secrets.EMAIL_IMAP_SERVER_PORT}} \ -e TELEGRAM_BOT_TOKEN=${{secrets.TELEGRAM_BOT_TOKEN}} \ -e TELEGRAM_GROUP_ID=${{secrets.TELEGRAM_GROUP_ID}} \ -e MARK_STRING=${{secrets.MARK_STRING}} \ -e POLLING_TIMEOUT=${{secrets.POLLING_TIMEOUT}} \ --name request-bot smallbuster/request-bot:latest