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) NFTSET_CONF: /tmp/90-nftset.conf RESOLVE_CONF: /tmp/92-resolve-bbrkn.conf # Резолвер, которому pihole делегирует bbrkn-домены (host dnsmasq :5350). # Кавычки обязательны — '#' иначе может трактоваться как комментарий. DNS_SERVER: "127.0.0.1#5350" # Gekata CHROME_SERVER: http://10.77.1.2:3000 # nftset-таргет: host-инстанс dnsmasq (:5350) грузит /etc/dnsmasq.d NFTSET_TARGET_DIR: /etc/dnsmasq.d # resolve-таргет: pihole (docker) делегирует bbrkn-домены на :5350 TARGET_DIR: /opt/appdata/pihole/etc/dnsmasq.d # Имя контейнера Pi-hole DOCKER_CONTAINER: pihole # systemd-сервис host-инстанса dnsmasq HOST_DNSMASQ_SVC: dnsmasq 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.NFTSET_CONF }} ${{ env.RESOLVE_CONF }} ${{ env.DEBUG_LOG }}