Skip to content

fix_final_1 pip

fix_final_1 pip #25

Workflow file for this run

name: ci-cd
on:
push:
branches:
#- main # Запускать пайплайн при пуше в ветку main
- v0.4
workflow_dispatch:
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create .env file
run: |
cat << EOF > .env
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=test
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
# Добавьте другие переменные, если нужно
EOF
cat .env # Для проверки (опционально)
- name: Install Docker Compose (v2)
run: |
mkdir -p ~/.docker/cli-plugins
curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
docker compose version # Проверяем установку
- name: Run services
run: |
docker compose up -d
docker compose ps
- name: Waiting connect to webserver
run: |
# Ждём готовности сервиса (пример для порта 5000)
until curl -s http://localhost:5000; do
sleep 2
done
- name: Send message
run: |
# Тестируем отправку сообщения
curl -X POST "http://localhost:5000/submit-text" \
-H "Content-Type: application/json" \
-d '{"text": "test"}' \
--fail --silent --show-error
- name: Check DB
run: |
# Проверяем, что сообщение попало в БД
docker compose exec -T postgres psql -U postgres -d test -c "SELECT * FROM messages;" | grep "test" || exit 1
- name: Cleanup (containers down)
if: always()
run: docker compose down
deploy:
runs-on: ubuntu-latest
#needs: tests
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Resolve DNS
run: |
echo "Проверка DNS:"
nslookup ${{ secrets.SERVER_DNS }}
- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/webserver
chmod 600 ~/.ssh/webserver
# Добавляем сервер в known_hosts
ssh-keyscan -T 10 ${{ secrets.SERVER_DNS }} >> ~/.ssh/known_hosts
- name: Test SSH connection
run: |
ssh -i ~/.ssh/webserver deployer@${{ secrets.SERVER_DNS }} exit
echo "Exit code: $?"
- name: Install ansible on runner
run: pip install ansible
- name: Starting ansible
run: |
pwd
cd ansible/
ls -la ~/.ssh/
ansible-playbook playbook.yaml