name: Deploy Application on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: token: 0406afe7de6547e850dd62c84976c6def23a5193 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build Docker image uses: docker/build-push-action@v4 with: context: . push: false load: true tags: ebook:latest - name: Save Docker image run: | docker save ebook:latest | gzip > ebook.tar.gz - name: Deploy via API env: GITEA_API: "https://gitea.miduway.space/api/v1/repos/levis/ebook/raw/main" GITEA_TOKEN: "0406afe7de6547e850dd62c84976c6def23a5193" SERVER_API: "https://ebook.miduway.space/" run: | # Устанавливаем зависимости без sudo apt-get update && apt-get install -y curl # Загружаем конфигурационные файлы for file in docker-compose.yml nginx.conf ebook.conf; do echo "Uploading $file" curl -X PUT \ -H "Authorization: token $GITEA_TOKEN" \ -T "$file" \ "$GITEA_API/$file" done # Загружаем Docker образ echo "Uploading Docker image..." curl -X PUT \ -H "Authorization: token $GITEA_TOKEN" \ -T "ebook.tar.gz" \ "$GITEA_API/ebook.tar.gz" # Выполняем деплой на сервер с игнорированием SSL echo "Deploying to server..." curl -k -X POST \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "action": "deploy", "repository": "levis/ebook", "branch": "main" }' \ "$SERVER_API"