Skip to content

added test labels

added test labels #56

Workflow file for this run

# Название нашего workflow
name: Run tests and deploy "bot-generate"
# Условия запуска workflow - в нашем случае при каждом пуше в репозиторий
on:
push:
paths:
- 'generate/bot-generate.py'
# Определяем задачи (jobs), которые будут выполняться в рамках workflow
jobs:
# Задача с именем "test"
test:
# Запускаем задачу на виртуальной машине с Ubuntu
runs-on: ubuntu-latest
# Определяем шаги (steps) для выполнения задачи
steps:
# Шаг 1: Получаем код из репозитория
- name: Check out repository
uses: actions/checkout@v2
# Шаг 2: Устанавливаем нужную версию Python
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.9
# Шаг 3: Устанавливаем зависимости (в нашем случае фреймворк для тестирования pytest и telebot)
- name: Install dependencies
run: pip install pytest telebot prometheus_client
# Шаг 4: Запускаем юнит-тесты с помощью pytest
- name: Run tests
run: python generate/bot-generate.py
env:
generate_bot: ${{ secrets.generate_bot }}
# Шаг 5: Загружаем файл как артефакт
- name: Upload file as artifact
uses: actions/upload-artifact@v2
with:
name: my-artifact-bot-generate
path: generate/bot-generate.py
# Задача с именем "deploy"
deploy:
# Запускаем задачу на виртуальной машине с Ubuntu
runs-on: ubuntu-latest
# Задаем зависимость от задачи "test"
needs: test
# Определяем шаги (steps) для выполнения задачи
steps:
# Шаг 1: Загружаем артефакт с нужными файлами
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: my-artifact-bot-generate
# Шаг 2: Копируем файл на удаленный сервер с помощью scp
- name: Copy file to remote server
run: |
# Создание каталога .ssh в домашней директории пользователя
mkdir -p ~/.ssh
# Добавление известных хостов в файл known_hosts
echo "${{ secrets.ssh_known_hosts }}" >> ~/.ssh/known_hosts
# Добавление закрытого ключа SSH в файл id_rsa
echo "${{ secrets.ssh_private_key }}" > ~/.ssh/id_rsa
# Изменение прав доступа к файлу id_rsa
chmod 600 ~/.ssh/id_rsa
# Выполнение команды для отправки python-файла на удаленный сервер
scp /home/runner/work/bots-telegram/bots-telegram/bot-generate.py ${{ secrets.username }}@${{ secrets.remote_host }}:${{ secrets.path_to_destination }}
# Задача с именем "reload"
reload:
# Запускаем задачу на виртуальной машине с Ubuntu
runs-on: ubuntu-latest
# Задача запускается только после успешного выполнения задачи "deploy"
needs: deploy
steps:
# Шаг для перезагрузки службы systemd на удаленном сервере
- name: Reload systemd service on remote server
run: |
# Создание каталога .ssh в домашней директории пользователя
mkdir -p ~/.ssh
# Добавление известных хостов в файл known_hosts
echo "${{ secrets.ssh_known_hosts }}" >> ~/.ssh/known_hosts
# Добавление закрытого ключа SSH в файл id_rsa
echo "${{ secrets.ssh_private_key }}" > ~/.ssh/id_rsa
# Изменение прав доступа к файлу id_rsa
chmod 600 ~/.ssh/id_rsa
# Выполнение команды для перезагрузки службы systemd на удаленном сервере
ssh ${{ secrets.username }}@${{ secrets.remote_host }} 'sudo systemctl restart bot-generate.service'