name: Deploy DNS Configuration on: push: branches: [ main ] workflow_dispatch: # Ручной запуск из UI jobs: deploy: runs-on: self-hosted # Используем self-hosted runner на шлюзе env: DEBUG: 1 DEBUG_LOG: /tmp/generate-configs.debug.log # ==== Конфигурация проекта ==== DOMAINS_FILE: domains.txt # Временные конфиги (куда пишутся generate-configs.sh) IPSET_CONF: /tmp/91-ipset-bbrkn.conf RESOLVE_CONF: /tmp/92-resolve-bbrkn.conf # DNS-сервер для резолвинга DNS_SERVER: 8.8.8.8 # Gekata CHROME_SERVER: http://10.77.1.2:3000 # Директория конфигов на шлюзе TARGET_DIR: /opt/appdata/pihole/etc/dnsmasq.d # Имя контейнера Pi-hole DOCKER_CONTAINER: pihole IGNORE_PARTS: "doubleclick yandex mail.ru bigsv.ru mts.ru rambler.ru yadro.ru aif.ru vkvideo.ru tns-counter.ru st.vk.com vk.com" # Кэш API-ответов (self-hosted runner сохраняет workspace между запусками) CACHE_DIR: .cache/api CACHE_TTL_DAYS: 15 steps: - name: Checkout repository uses: actions/checkout@v3 - name: Run workflow (clean → all) run: | make clean make all - name: Upload configs as artifacts if: always() # Загружаем артефакты даже при падении — для отладки uses: actions/upload-artifact@v3 with: name: dnsmasq-configs path: | ${{ env.IPSET_CONF }} ${{ env.RESOLVE_CONF }} ${{ env.DEBUG_LOG }}