Use NGINX mode in all editors while ModSecurity highlighting syntaxes… #50
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Automatic tests (1.5) | ||
permissions: read-all | ||
on: | ||
push: | ||
branches: [1.5] | ||
jobs: | ||
# Containers | ||
build-containers: | ||
permissions: | ||
contents: read | ||
packages: write | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
image: [bunkerweb, scheduler, autoconf, ui] | ||
include: | ||
- image: bunkerweb | ||
dockerfile: src/bw/Dockerfile | ||
- image: scheduler | ||
dockerfile: src/scheduler/Dockerfile | ||
- image: autoconf | ||
dockerfile: src/autoconf/Dockerfile | ||
- image: ui | ||
dockerfile: src/ui/Dockerfile | ||
uses: ./.github/workflows/container-build.yml | ||
with: | ||
RELEASE: 1.5 | ||
ARCH: linux/amd64 | ||
CACHE: true | ||
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, debian, fedora, rhel, rhel9, ubuntu-jammy] | ||
include: | ||
- linux: ubuntu | ||
package: deb | ||
- linux: ubuntu-jammy | ||
package: deb | ||
- linux: debian | ||
package: deb | ||
- linux: fedora | ||
package: rpm | ||
- linux: rhel | ||
package: rpm | ||
- linux: rhel9 | ||
package: rpm | ||
uses: ./.github/workflows/linux-build.yml | ||
with: | ||
RELEASE: 1.5 | ||
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@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | ||
- 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: 1.5 | ||
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: 1.5 | ||
# Core tests | ||
prepare-tests-core: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | ||
- id: set-matrix | ||
run: | | ||
tests=$(find ./tests/core/ -maxdepth 1 -mindepth 1 -type d -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-core: | ||
needs: [build-containers, prepare-tests-core] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
test: ${{ fromJson(needs.prepare-tests-core.outputs.tests) }} | ||
uses: ./.github/workflows/test-core.yml | ||
with: | ||
TEST: ${{ matrix.test }} | ||
RELEASE: 1.5 | ||
tests-core-linux: | ||
needs: [build-packages, prepare-tests-core] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
test: ${{ fromJson(needs.prepare-tests-core.outputs.tests) }} | ||
uses: ./.github/workflows/test-core-linux.yml | ||
with: | ||
TEST: ${{ matrix.test }} | ||
RELEASE: 1.5 | ||
secrets: inherit | ||
# Push with 1.5 tag | ||
push-1_5: | ||
needs: [tests-ui, tests-core] | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
steps: | ||
- name: Login to Docker Hub | ||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_TOKEN }} | ||
- name: Login to ghcr | ||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Push BW image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "bunkerweb" | ||
TO: "bunkerweb" | ||
- name: Push scheduler image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "scheduler" | ||
TO: "bunkerweb-scheduler" | ||
- name: Push UI image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "ui" | ||
TO: "bunkerweb-ui" | ||
- name: Push autoconf image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "autoconf" | ||
TO: "bunkerweb-autoconf" | ||
# Push Linux packages | ||
push-packages: | ||
needs: [tests-ui-linux, tests-core-linux] | ||
strategy: | ||
matrix: | ||
linux: [ubuntu, debian, fedora, el, el9, ubuntu-jammy] | ||
arch: [amd64] | ||
include: | ||
- release: 1.5 | ||
repo: bunkerweb | ||
- linux: ubuntu | ||
package_arch: amd64 | ||
separator: _ | ||
suffix: "" | ||
version: noble | ||
package: deb | ||
- linux: debian | ||
package_arch: amd64 | ||
separator: _ | ||
suffix: "" | ||
version: bookworm | ||
package: deb | ||
- linux: fedora | ||
package_arch: x86_64 | ||
separator: "-" | ||
suffix: "1." | ||
version: 40 | ||
package: rpm | ||
- linux: el | ||
package_arch: x86_64 | ||
separator: "-" | ||
suffix: "1." | ||
version: 8 | ||
package: rpm | ||
- linux: el9 | ||
package_arch: x86_64 | ||
separator: "-" | ||
suffix: "1." | ||
version: 9 | ||
package: rpm | ||
- linux: ubuntu-jammy | ||
package_arch: amd64 | ||
separator: _ | ||
suffix: "" | ||
version: jammy | ||
package: deb | ||
uses: ./.github/workflows/push-packagecloud.yml | ||
with: | ||
SEPARATOR: ${{ matrix.separator }} | ||
SUFFIX: ${{ matrix.suffix }} | ||
REPO: ${{ matrix.repo }} | ||
LINUX: ${{ matrix.linux }} | ||
VERSION: ${{ matrix.version }} | ||
PACKAGE: ${{ matrix.package }} | ||
BW_VERSION: ${{ matrix.release }} | ||
PACKAGE_ARCH: ${{ matrix.package_arch }} | ||
ARCH: ${{ matrix.arch }} | ||
secrets: | ||
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} | ||
name: Automatic tests (1.5) | ||
permissions: read-all | ||
on: | ||
push: | ||
branches: [1.5] | ||
jobs: | ||
# Containers | ||
build-containers: | ||
permissions: | ||
contents: read | ||
packages: write | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
image: [bunkerweb, scheduler, autoconf, ui] | ||
include: | ||
- image: bunkerweb | ||
dockerfile: src/bw/Dockerfile | ||
- image: scheduler | ||
dockerfile: src/scheduler/Dockerfile | ||
- image: autoconf | ||
dockerfile: src/autoconf/Dockerfile | ||
- image: ui | ||
dockerfile: src/ui/Dockerfile | ||
uses: ./.github/workflows/container-build.yml | ||
with: | ||
RELEASE: 1.5 | ||
ARCH: linux/amd64 | ||
CACHE: true | ||
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, debian, fedora, rhel, rhel9, ubuntu-jammy] | ||
include: | ||
- linux: ubuntu | ||
package: deb | ||
- linux: ubuntu-jammy | ||
package: deb | ||
- linux: debian | ||
package: deb | ||
- linux: fedora | ||
package: rpm | ||
- linux: rhel | ||
package: rpm | ||
- linux: rhel9 | ||
package: rpm | ||
uses: ./.github/workflows/linux-build.yml | ||
with: | ||
RELEASE: 1.5 | ||
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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | ||
- 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: 1.5 | ||
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: 1.5 | ||
# Core tests | ||
prepare-tests-core: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | ||
- id: set-matrix | ||
run: | | ||
tests=$(find ./tests/core/ -maxdepth 1 -mindepth 1 -type d -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-core: | ||
needs: [build-containers, prepare-tests-core] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
test: ${{ fromJson(needs.prepare-tests-core.outputs.tests) }} | ||
uses: ./.github/workflows/test-core.yml | ||
with: | ||
TEST: ${{ matrix.test }} | ||
RELEASE: 1.5 | ||
tests-core-linux: | ||
needs: [build-packages, prepare-tests-core] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
test: ${{ fromJson(needs.prepare-tests-core.outputs.tests) }} | ||
uses: ./.github/workflows/test-core-linux.yml | ||
with: | ||
TEST: ${{ matrix.test }} | ||
RELEASE: 1.5 | ||
secrets: inherit | ||
# Push with 1.5 tag | ||
push-1_5: | ||
needs: [tests-ui, tests-core] | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
steps: | ||
- name: Login to Docker Hub | ||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_TOKEN }} | ||
- name: Login to ghcr | ||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Push BW image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "bunkerweb" | ||
TO: "bunkerweb" | ||
- name: Push scheduler image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "scheduler" | ||
TO: "bunkerweb-scheduler" | ||
- name: Push UI image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "ui" | ||
TO: "bunkerweb-ui" | ||
- name: Push autoconf image | ||
run: docker pull ghcr.io/bunkerity/$FROM-tests:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 bunkerity/$TO:1.5 && docker tag ghcr.io/bunkerity/$FROM-tests:1.5 ghcr.io/bunkerity/$TO:1.5 && docker push bunkerity/$TO:1.5 && docker push ghcr.io/bunkerity/$TO:1.5 | ||
env: | ||
FROM: "autoconf" | ||
TO: "bunkerweb-autoconf" | ||
# Push Linux packages | ||
push-packages: | ||
needs: [tests-ui-linux, tests-core-linux] | ||
strategy: | ||
matrix: | ||
linux: [ubuntu, debian, fedora, el, el9, ubuntu-jammy] | ||
arch: [amd64] | ||
include: | ||
- release: 1.5 | ||
repo: bunkerweb | ||
- linux: ubuntu | ||
package_arch: amd64 | ||
separator: _ | ||
suffix: "" | ||
version: noble | ||
package: deb | ||
- linux: debian | ||
package_arch: amd64 | ||
separator: _ | ||
suffix: "" | ||
version: bookworm | ||
package: deb | ||
- linux: fedora | ||
package_arch: x86_64 | ||
separator: "-" | ||
suffix: "1." | ||
version: 40 | ||
package: rpm | ||
- linux: el | ||
package_arch: x86_64 | ||
separator: "-" | ||
suffix: "1." | ||
version: 8 | ||
package: rpm | ||
- linux: el9 | ||
package_arch: x86_64 | ||
separator: "-" | ||
suffix: "1." | ||
version: 9 | ||
package: rpm | ||
- linux: ubuntu-jammy | ||
package_arch: amd64 | ||
separator: _ | ||
suffix: "" | ||
version: jammy | ||
package: deb | ||
uses: ./.github/workflows/push-packagecloud.yml | ||
with: | ||
SEPARATOR: ${{ matrix.separator }} | ||
SUFFIX: ${{ matrix.suffix }} | ||
REPO: ${{ matrix.repo }} | ||
LINUX: ${{ matrix.linux }} | ||
VERSION: ${{ matrix.version }} | ||
PACKAGE: ${{ matrix.package }} | ||
BW_VERSION: ${{ matrix.release }} | ||
PACKAGE_ARCH: ${{ matrix.package_arch }} | ||
ARCH: ${{ matrix.arch }} | ||
secrets: | ||
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} |