name: Validate on: push: branches: [main] pull_request: permissions: contents: read jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" cache: pip cache-dependency-path: requirements-dev.txt - name: Install dependencies run: pip install -r requirements-dev.txt - name: Lint YAML run: yamllint . - name: Validate manifests run: python3 scripts/validate.py - name: Check README index run: python3 scripts/gen_index.py --check import-test: name: import-test (Zabbix ${{ matrix.zabbix }}) runs-on: ubuntu-latest needs: lint timeout-minutes: 20 strategy: fail-fast: false matrix: include: # Distinct project names and host ports keep parallel jobs from # colliding when runners share one Docker daemon. - zabbix: "7.0" slug: zbx70 web_port: 8070 server_port: 10070 - zabbix: "8.0" slug: zbx80 web_port: 8080 server_port: 10080 env: ZBX_SERVER_IMAGE: alpine-${{ matrix.zabbix }}-latest ZBX_WEB_IMAGE: alpine-${{ matrix.zabbix }}-latest ZBX_TEST_PROJECT: zabbix-templates-test-${{ github.run_id }}-${{ matrix.slug }} ZBX_WEB_PORT: ${{ matrix.web_port }} ZBX_SERVER_PORT: ${{ matrix.server_port }} steps: - uses: actions/checkout@v4 - name: Import templates into disposable Zabbix run: ./scripts/import_test.sh