diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fcca993f42..d09e7971b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,10 @@ name: Code CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed concurrency: group: build-ci-${{ github.event.pull_request.number || github.sha }} @@ -33,7 +31,6 @@ jobs: run: | echo $VFLAGS make - ./v test-cleancode ./v -d debug_malloc -d debug_realloc -o v cmd/v ./v -cg -cstrict -o v cmd/v # Test v -realloc arena allocation diff --git a/.github/workflows/ci_bootstrapping_works.yml b/.github/workflows/ci_bootstrapping_works.yml index a7116ef83a..55b2899e64 100644 --- a/.github/workflows/ci_bootstrapping_works.yml +++ b/.github/workflows/ci_bootstrapping_works.yml @@ -1,12 +1,10 @@ name: Bootstraping works on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: ubuntu: diff --git a/.github/workflows/ci_cross.yml b/.github/workflows/ci_cross.yml index bc1d8bb16c..dc9943ae75 100644 --- a/.github/workflows/ci_cross.yml +++ b/.github/workflows/ci_cross.yml @@ -1,12 +1,10 @@ name: Cross CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: diff --git a/.github/workflows/ci_sanitized.yml b/.github/workflows/ci_sanitized.yml index 8a738aab0c..29e1985eb8 100644 --- a/.github/workflows/ci_sanitized.yml +++ b/.github/workflows/ci_sanitized.yml @@ -13,6 +13,7 @@ name: Sanitized CI on: push: + branches: [master] paths: - '!**' - 'cmd/tools/vtest*' @@ -72,7 +73,24 @@ concurrency: cancel-in-progress: true jobs: + code-formatting-before-regression: + runs-on: ubuntu-20.04 + timeout-minutes: 15 + env: + VFLAGS: -cc gcc + steps: + - uses: actions/checkout@v2 + - name: Environment info + run: echo $VFLAGS $GITHUB_SHA $GITHUB_REF + - name: Build local v + run: make -j4 + - name: v test-cleancode + run: ./v test-cleancode + - name: v test-fmt + run: ./v test-fmt + tests-sanitize-undefined-clang: + needs: [code-formatting-before-regression] runs-on: ubuntu-20.04 timeout-minutes: 180 env: @@ -91,13 +109,14 @@ jobs: sudo apt-get install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev sudo apt-get install clang - name: Build V - run: make -j4 && ./v -cg -cstrict -o v cmd/v && ./v test-cleancode + run: make -j4 && ./v -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=undefined) run: ./v -cflags "-fsanitize=undefined" -o v2 cmd/v && ./v2 -cflags -fsanitize=undefined test-self - name: Build examples (V compiled with -fsanitize=undefined) run: ./v2 build-examples tests-sanitize-undefined-gcc: + needs: [code-formatting-before-regression] runs-on: ubuntu-20.04 timeout-minutes: 180 env: @@ -115,13 +134,14 @@ jobs: sudo apt-get install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind sudo apt-get install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - name: Build V - run: make -j4 && ./v -cg -cstrict -o v cmd/v && ./v test-cleancode + run: make -j4 && ./v -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=undefined) run: ./v -cflags "-fsanitize=undefined" -o v2 cmd/v && ./v2 -cflags -fsanitize=undefined test-self - name: Build examples (V compiled with -fsanitize=undefined) run: ./v2 build-examples tests-sanitize-address-clang: + needs: [code-formatting-before-regression] runs-on: ubuntu-20.04 timeout-minutes: 180 env: @@ -140,7 +160,7 @@ jobs: sudo apt-get install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev sudo apt-get install clang - name: Build V - run: make -j4 && ./v -cg -cstrict -o v cmd/v && ./v test-cleancode + run: make -j4 && ./v -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=address) run: ASAN_OPTIONS=detect_leaks=0 ./v -cflags "-fsanitize=address,pointer-compare,pointer-subtract" test-self - name: Self tests (V compiled with -fsanitize=address) @@ -151,6 +171,7 @@ jobs: run: ASAN_OPTIONS=detect_leaks=0 ./v build-examples tests-sanitize-address-msvc: + needs: [code-formatting-before-regression] runs-on: windows-2019 timeout-minutes: 180 env: @@ -178,6 +199,7 @@ jobs: ## .\v.exe -cflags "/fsanitize=address" test-self tests-sanitize-address-gcc: + needs: [code-formatting-before-regression] runs-on: ubuntu-20.04 timeout-minutes: 180 env: @@ -196,7 +218,7 @@ jobs: sudo apt-get install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev sudo apt-get install clang - name: Build V - run: make -j4 && ./v -cg -cstrict -o v cmd/v && ./v test-cleancode + run: make -j4 && ./v -cg -cstrict -o v cmd/v && - name: Self tests (-fsanitize=address) run: ASAN_OPTIONS=detect_leaks=0 ./v -cflags -fsanitize=address test-self - name: Self tests (V compiled with -fsanitize=address) @@ -207,6 +229,7 @@ jobs: run: ASAN_OPTIONS=detect_leaks=0 ./v build-examples tests-sanitize-memory-clang: + needs: [code-formatting-before-regression] runs-on: ubuntu-20.04 timeout-minutes: 180 env: @@ -225,7 +248,7 @@ jobs: sudo apt-get install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev sudo apt-get install clang - name: Build V - run: make -j4 && ./v -cc clang -cg -cstrict -o v cmd/v && ./v test-cleancode + run: make -j4 && ./v -cc clang -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=memory) run: ./v -cflags -fsanitize=memory test-self - name: Self tests (V compiled with -fsanitize=memory) diff --git a/.github/workflows/ci_v_benchmark.yml b/.github/workflows/ci_v_benchmark.yml index ceea0f24e7..3ea143e044 100644 --- a/.github/workflows/ci_v_benchmark.yml +++ b/.github/workflows/ci_v_benchmark.yml @@ -1,12 +1,10 @@ name: vlang benchmarks on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: run: diff --git a/.github/workflows/containers_ci.yml b/.github/workflows/containers_ci.yml index ec8123cd21..538ff304d2 100644 --- a/.github/workflows/containers_ci.yml +++ b/.github/workflows/containers_ci.yml @@ -1,12 +1,10 @@ name: Containers CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed concurrency: group: build-containers-${{ github.event.pull_request.number || github.sha }} diff --git a/.github/workflows/docs_ci.yml b/.github/workflows/docs_ci.yml index 8422e25b7d..af6405ffd8 100644 --- a/.github/workflows/docs_ci.yml +++ b/.github/workflows/docs_ci.yml @@ -2,7 +2,11 @@ name: Docs CI ### Run on *EVERY* commit. The documentation *SHOULD* stay valid, and ### the developers should receive early warning if they break it. -on: [push, pull_request] +on: + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: check-markdown: diff --git a/.github/workflows/gfx_ci.yml b/.github/workflows/gfx_ci.yml index a7a31b3f3c..460b0de035 100644 --- a/.github/workflows/gfx_ci.yml +++ b/.github/workflows/gfx_ci.yml @@ -1,12 +1,10 @@ name: Graphics CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: gg-regressions: diff --git a/.github/workflows/other_ci.yml b/.github/workflows/other_ci.yml index bc2e260ba1..4e4ed7427b 100644 --- a/.github/workflows/other_ci.yml +++ b/.github/workflows/other_ci.yml @@ -2,6 +2,8 @@ name: Other CI on: push: + branches: + - master paths-ignore: - "**.md" pull_request: @@ -14,6 +16,7 @@ concurrency: jobs: no-gpl-by-accident: + needs: [code-formatting] runs-on: ubuntu-20.04 timeout-minutes: 15 steps: @@ -39,6 +42,7 @@ jobs: run: ./v test-fmt performance-regressions: + needs: [code-formatting] runs-on: ubuntu-20.04 timeout-minutes: 15 env: @@ -63,6 +67,7 @@ jobs: run: cmd/tools/repeat --max_time 1501 --series 3 --count 20 --nmins 2 --nmaxs 5 --warmup 3 --fail_percent 10 -t 'cd {T} ; ./v -show-timings -o v.c cmd/v' . ./vmaster misc-tooling: + needs: [code-formatting] runs-on: ubuntu-20.04 timeout-minutes: 121 env: @@ -111,6 +116,7 @@ jobs: ./v should-compile-all examples/sokol/*.v examples/sokol/0?*/*.v parser-silent: + needs: [code-formatting] runs-on: ubuntu-20.04 timeout-minutes: 121 steps: diff --git a/.github/workflows/paths_ci.yml b/.github/workflows/paths_ci.yml index e24050e8da..e6b9d372b8 100644 --- a/.github/workflows/paths_ci.yml +++ b/.github/workflows/paths_ci.yml @@ -1,12 +1,10 @@ name: Path Testing CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed concurrency: group: build-paths-${{ github.event.pull_request.number || github.sha }} diff --git a/.github/workflows/sdl_ci.yml b/.github/workflows/sdl_ci.yml index f7f14ef780..d534bb3a28 100644 --- a/.github/workflows/sdl_ci.yml +++ b/.github/workflows/sdl_ci.yml @@ -1,12 +1,10 @@ name: sdl CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: v-compiles-sdl-examples: diff --git a/.github/workflows/toml_ci.yml b/.github/workflows/toml_ci.yml index 2d6da67d77..175b7a9a18 100644 --- a/.github/workflows/toml_ci.yml +++ b/.github/workflows/toml_ci.yml @@ -1,12 +1,10 @@ name: toml CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: toml-module-pass-external-test-suites: diff --git a/.github/workflows/v_apps_and_modules_compile.yml b/.github/workflows/v_apps_and_modules_compile.yml index deb561d1ca..21ae0e35be 100644 --- a/.github/workflows/v_apps_and_modules_compile.yml +++ b/.github/workflows/v_apps_and_modules_compile.yml @@ -1,12 +1,10 @@ name: V Apps and Modules on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed concurrency: group: build-other-${{ github.event.pull_request.number || github.sha }} diff --git a/.github/workflows/vab_ci.yml b/.github/workflows/vab_ci.yml index f1cb779b4c..938e6d7f07 100644 --- a/.github/workflows/vab_ci.yml +++ b/.github/workflows/vab_ci.yml @@ -1,12 +1,10 @@ name: vab CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: vab-compiles-v-examples: diff --git a/.github/workflows/vinix-kernel.yml b/.github/workflows/vinix-kernel.yml index ca94a74694..9922b1b961 100644 --- a/.github/workflows/vinix-kernel.yml +++ b/.github/workflows/vinix-kernel.yml @@ -1,14 +1,10 @@ name: Build Vinix kernel on: - pull_request: - paths-ignore: - - "**.md" - push: - branches: - - master - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: vinix-build: diff --git a/.github/workflows/websockets.yml b/.github/workflows/websockets.yml index 05f5c3a20d..010fc9eefa 100644 --- a/.github/workflows/websockets.yml +++ b/.github/workflows/websockets.yml @@ -1,12 +1,10 @@ name: Websockets CI on: - push: - paths-ignore: - - "**.md" - pull_request: - paths-ignore: - - "**.md" + workflow_run: + workflows: ["Other CI"] + types: + - completed jobs: websocket_tests: