name: Deploy on: push: branches: - master jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Build and push image run: | docker login gitea.p4r4dls.ru \ -u ${{ secrets.REGISTRY_USER }} \ -p ${{ secrets.REGISTRY_TOKEN }} docker buildx create --use --name multibuilder docker buildx build \ --platform linux/amd64 \ --push \ -t gitea.p4r4dls.ru/yusupal1ev/g2s-aggregator:0.0.9 \ . - name: Setup SSH run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan 194.58.121.203 >> ~/.ssh/known_hosts - name: Render and copy configs run: | set -euo pipefail render() { local src=$1 dst=$2 vars=$(grep -oP '\$\{\K[^}]+' "$src") for var in $vars; do if [[ -z "${!var:-}" ]]; then echo "Error: $var не задан в Gitea Secrets" >&2 exit 1 fi done envsubst < "$src" > "$dst" } render config.template.yaml config.rendered.yaml render docker-compose.template.yml docker-compose.rendered.yml scp -i ~/.ssh/deploy_key config.rendered.yaml \ deploy@194.58.121.203:/app/g2s-aggregator/config.yaml scp -i ~/.ssh/deploy_key docker-compose.rendered.yml \ deploy@194.58.121.203:/app/g2s-aggregator/docker-compose.yml - name: Deploy run: | ssh -i ~/.ssh/deploy_key deploy@194.58.121.203 " cd /app/g2s-aggregator && docker login gitea.p4r4dls.ru \ -u ${{ secrets.REGISTRY_USER }} \ -p ${{ secrets.REGISTRY_TOKEN }} && docker compose pull && docker compose up -d "