diff --git a/.github/workflows/bot.yml b/.github/workflows/bot.yml index ce9c96c..5debbc7 100644 --- a/.github/workflows/bot.yml +++ b/.github/workflows/bot.yml @@ -1,41 +1,51 @@ -name: Telegram Bot CI/CD +name: My first CI Pipeline on: push: - branches: [ "main" ] + branches: + - main -jobs: - # Джоба 1: Проверка кода - test_and_lint: +jobs: + + formatting-check: + name: Formatting Check runs-on: ubuntu-latest steps: - - name: Скачиваем код + - uses: actions/checkout@v4 + - name: run YAPF to test if python code is correctly formatted + uses: AlexanderMelde/yapf-action@v2.0 + with: + args: --verbose + security-scan: + name: Security Scan + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Run OWASP Noir + id: noir + uses: owasp-noir/noir@v1.1.0 + with: + base_path: '.' + - name: Display results + run: echo '${{ steps.noir.outputs.endpoints }}' | jq . + + build-and-push: + name: Build and push to Docker Hub + needs: [security-scan, formatting-check] + runs-on: ubuntu-latest + steps: + - name: Скачиваем код бота uses: actions/checkout@v4 - - name: Настраиваем Python 3.10 - uses: actions/setup-python@v5 + - name: Логинимся в Docker Hub + uses: docker/login-action@v3 with: - python-version: "3.10" + username: ${{ secrets.docker_login }} + password: ${{ secrets.docker_pass }} - - name: Устанавливаем зависимости - run: | - python -m pip install --upgrade pip - pip install flake8 - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - - name: Проверяем код линтером (flake8) - run: | - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - - # ДОБАВЛЯЕМ СЮДА: - - name: Запуск тестов - run: | - pytest - - # Джоба 2: Деплой (Запустится только если Джоба 1 прошла успешно) - deploy: - needs: test_and_lint - runs-on: ubuntu-latest - steps: - - name: Деплой на сервер - run: echo "Здесь" + - name: Сборка и пуш Docker образа + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: leor156/pogoda-api-tgbot:latest