Skip to content

fix deploy-docker.yml: add hosts:local!!! #18

fix deploy-docker.yml: add hosts:local!!!

fix deploy-docker.yml: add hosts:local!!! #18

Workflow file for this run

name: go ci-cd
on:
push:
branches:
- main # Запускать пайплайн при пуше в ветку main
workflow_dispatch:
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.22' # Указываем версию Go
- name: Run port check (+install JQ)
run: |
sudo apt-get install -y jq # Установка зависимости для работы с JSON
chmod +x tests/port_check.sh # Даем права на выполнение скрипта
./tests/port_check.sh # Запускаем скрипт проверки портов
- name: Run tests
run: |
cd go/
go test -v
deploy:
runs-on: ubuntu-latest
needs: tests
env:
REMOTE_DIR: "/tmp/ans"
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Resolve DNS
run: |
echo "Проверка DNS:"
nslookup ${{ secrets.SERVER_DNS }}
- name: Create remote directory # Создаем директорию на сервере
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_DNS }}
username: deployer
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
mkdir -p ${{ env.REMOTE_DIR }} # -p гарантирует создание вложенных путей
chmod 755 ${{ env.REMOTE_DIR }} # Выставляем корректные права
- name: copy file to server
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER_DNS }}
username: deployer
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: "deploy-docker.yml,ansible.cfg"
target: ${{ env.REMOTE_DIR }}
- name: executing remote ssh commands using key
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_DNS }}
username: deployer
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
sudo apt update && \
{ dpkg -s ansible &> /dev/null && sudo apt install --only-upgrade -y ansible || sudo apt install -y ansible; }
ANSIBLE_CONFIG=${{ env.REMOTE_DIR }}/ansible.cfg ansible-playbook ${{ env.REMOTE_DIR }}/deploy-docker.yml
# Хочу запустить ansible-playbook
# Для этого надо:
# 0. Подключиться к серверу - uses: appleboy/ssh-action@v1 - готово
# 1. установить/проверить ansible на сервере - внутри пункта 0 - готово
# 2. Передать плейбук и его конфиг на сервер - через scp или новый шаг?
# 3. Запустить плейбук -
#
#
#
#
#