name: Automatic tests (UI) permissions: read-all on: push: branches: [ui] jobs: # Containers build-containers: permissions: contents: read packages: write strategy: matrix: image: [bunkerweb, scheduler, ui] include: - image: bunkerweb dockerfile: src/bw/Dockerfile - image: scheduler dockerfile: src/scheduler/Dockerfile - image: ui dockerfile: src/ui/Dockerfile uses: ./.github/workflows/container-build.yml with: RELEASE: ui CACHE: true ARCH: linux/amd64 IMAGE: ${{ matrix.image }} DOCKERFILE: ${{ matrix.dockerfile }} secrets: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }} # Build Linux packages build-packages: permissions: contents: read packages: write strategy: matrix: linux: [ubuntu] include: - linux: ubuntu package: deb uses: ./.github/workflows/linux-build.yml with: RELEASE: ui LINUX: ${{ matrix.linux }} PACKAGE: ${{ matrix.package }} TEST: true PLATFORMS: linux/amd64 secrets: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }} codeql: uses: ./.github/workflows/codeql.yml permissions: actions: read contents: read security-events: write # UI tests prepare-tests-ui: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - id: set-matrix run: | tests=$(find ./tests/ui/ -name "*_page.py" -type f -printf "%f\n" | jq -c --raw-input --slurp 'split("\n")| .[0:-1]') echo "tests=$tests" >> $GITHUB_OUTPUT outputs: tests: ${{ steps.set-matrix.outputs.tests }} tests-ui: needs: [prepare-tests-ui, build-containers] strategy: fail-fast: false matrix: test: ${{ fromJson(needs.prepare-tests-ui.outputs.tests) }} uses: ./.github/workflows/tests-ui.yml with: TEST: ${{ matrix.test }} RELEASE: ui tests-ui-linux: needs: [prepare-tests-ui, build-packages] strategy: fail-fast: false matrix: test: ${{ fromJson(needs.prepare-tests-ui.outputs.tests) }} uses: ./.github/workflows/tests-ui-linux.yml with: TEST: ${{ matrix.test }} RELEASE: ui