diff --git a/.github/workflows/exotic-builds-testing.yml b/.github/workflows/exotic-builds-testing.yml index 7c57d23815..aa4cb2ca9f 100644 --- a/.github/workflows/exotic-builds-testing.yml +++ b/.github/workflows/exotic-builds-testing.yml @@ -80,3 +80,35 @@ jobs: - name: test run: cmake --build . --parallel --target LuaJIT-test working-directory: ${{ env.BUILDDIR }} + + test-exotic-tarantool: + strategy: + fail-fast: false + matrix: + ARCH: [ARM64, x86_64] + BUILDTYPE: [Debug, Release] + GC64: [ON, OFF] + include: + - BUILDTYPE: Debug + CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug + - BUILDTYPE: Release + CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo + exclude: + - ARCH: ARM64 + GC64: OFF + name: > + Tarantool + Linux/${{ matrix.ARCH }}) + ${{ matrix.BUILDTYPE }} + GC64:${{ matrix.GC64 }} + needs: test-exotic + uses: tarantool/tarantool/.github/workflows/luajit-integration.yml@fckxorg/fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + CMAKE_EXTRA_PARAMS: > + -G Ninja + ${{ matrix.CMAKEFLAGS }} + -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }} + arch: ${{ matrix.ARCH }} + os: Linux + revision: ${{ github.sha }} + release: fckxorg/WIP-ci-integration-on-purpose-not-in-fork diff --git a/.github/workflows/tarantool-debug.yml b/.github/workflows/tarantool-debug.yml new file mode 100644 index 0000000000..412924a4b3 --- /dev/null +++ b/.github/workflows/tarantool-debug.yml @@ -0,0 +1,46 @@ +name: Tarantool debug testing + +on: + push: + branches-ignore: + - '**-notest' + - 'upstream-**' + tags-ignore: + - '**' + +concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('LJ-{0}-{1}', github.run_id, github.run_attempt) + || format('LJ-{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + test-tarantool-debug: + uses: tarantool/tarantool/.github/workflows/debug.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-debug_aarch64: + uses: tarantool/tarantool/.github/workflows/debug_aarch64.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-debug_asan_clang: + uses: tarantool/tarantool/.github/workflows/debug_asan_clang.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} diff --git a/.github/workflows/tarantool-exotic.yml b/.github/workflows/tarantool-exotic.yml new file mode 100644 index 0000000000..41fe80c87e --- /dev/null +++ b/.github/workflows/tarantool-exotic.yml @@ -0,0 +1,94 @@ +name: Tarantool special builds testing + +on: + push: + branches-ignore: + - '**-notest' + - 'upstream-**' + tags-ignore: + - '**' + +concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('LJ-{0}-{1}', github.run_id, github.run_attempt) + || format('LJ-{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + test-tarantool-perf_micro: + uses: tarantool/tarantool/.github/workflows/perf_micro.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-codeql: + uses: tarantool/tarantool/.github/workflows/codeql.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-coverage: + uses: tarantool/tarantool/.github/workflows/coverage.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-default_gcc_centos_7: + uses: tarantool/tarantool/.github/workflows/default_gcc_centos_7.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-freebsd-12: + uses: tarantool/tarantool/.github/workflows/freebsd-12.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-freebsd-13: + uses: tarantool/tarantool/.github/workflows/freebsd-13.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-lint: + uses: tarantool/tarantool/.github/workflows/lint.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-memtx_allocator_based_on_malloc: + uses: tarantool/tarantool/.github/workflows/memtx_allocator_based_on_malloc.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-out_of_source: + uses: tarantool/tarantool/.github/workflows/out_of_source.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-static_build: + uses: tarantool/tarantool/.github/workflows/static_build.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-static_build_cmake_linux: + uses: tarantool/tarantool/.github/workflows/static_build_cmake_linux.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} diff --git a/.github/workflows/tarantool-integration.yml b/.github/workflows/tarantool-integration.yml new file mode 100644 index 0000000000..b9d33c7da9 --- /dev/null +++ b/.github/workflows/tarantool-integration.yml @@ -0,0 +1,34 @@ +name: Tarantool integration testing + +on: + push: + branches-ignore: + - '**-notest' + - 'upstream-**' + tags-ignore: + - '**' + +concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('LJ-{0}-{1}', github.run_id, github.run_attempt) + || format('LJ-{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + test-tarantool-integration: + uses: tarantool/tarantool/.github/workflows/integration.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} diff --git a/.github/workflows/tarantool-osx.yml b/.github/workflows/tarantool-osx.yml new file mode 100644 index 0000000000..99e5c4a785 --- /dev/null +++ b/.github/workflows/tarantool-osx.yml @@ -0,0 +1,52 @@ +name: Tarantool OSX testing + +on: + push: + branches-ignore: + - '**-notest' + - 'upstream-**' + tags-ignore: + - '**' + +concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('LJ-{0}-{1}', github.run_id, github.run_attempt) + || format('LJ-{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + test-tarantool-osx_debug: + uses: tarantool/tarantool/.github/workflows/osx_debug.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-osx_release: + uses: tarantool/tarantool/.github/workflows/osx_release.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-osx_release_lto: + uses: tarantool/tarantool/.github/workflows/osx_release_lto.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-osx_static_cmake: + uses: tarantool/tarantool/.github/workflows/osx_static_cmake.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} diff --git a/.github/workflows/tarantool-packaging.yml b/.github/workflows/tarantool-packaging.yml new file mode 100644 index 0000000000..23f0804008 --- /dev/null +++ b/.github/workflows/tarantool-packaging.yml @@ -0,0 +1,34 @@ +name: Tarantool packaging + +on: + push: + branches-ignore: + - '**-notest' + - 'upstream-**' + tags-ignore: + - '**' + +concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('LJ-{0}-{1}', github.run_id, github.run_attempt) + || format('LJ-{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + test-tarantool-packaging: + uses: tarantool/tarantool/.github/workflows/packaging.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} diff --git a/.github/workflows/tarantool-perf.yml b/.github/workflows/tarantool-perf.yml new file mode 100644 index 0000000000..e5f63c2adf --- /dev/null +++ b/.github/workflows/tarantool-perf.yml @@ -0,0 +1,34 @@ +name: Tarantool perf testing + +on: + push: + branches-ignore: + - '**-notest' + - 'upstream-**' + tags-ignore: + - '**' + +concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('LJ-{0}-{1}', github.run_id, github.run_attempt) + || format('LJ-{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + test-tarantool-perf_micro: + uses: tarantool/tarantool/.github/workflows/perf_micro.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} diff --git a/.github/workflows/tarantool-release.yml b/.github/workflows/tarantool-release.yml new file mode 100644 index 0000000000..451743d22e --- /dev/null +++ b/.github/workflows/tarantool-release.yml @@ -0,0 +1,58 @@ +name: Tarantool release + +on: + push: + branches-ignore: + - '**-notest' + - 'upstream-**' + tags-ignore: + - '**' + +concurrency: + # An update of a developer branch cancels the previously + # scheduled workflow run for this branch. However, the default + # branch, and long-term branch (tarantool/release/2.11, + # tarantool/release/2.10, etc) workflow runs are never canceled. + # + # We use a trick here: define the concurrency group as 'workflow + # run ID' + # 'workflow run attempt' because it is a unique + # combination for any run. So it effectively discards grouping. + # + # XXX: we cannot use `github.sha` as a unique identifier because + # pushing a tag may cancel a run that works on a branch push + # event. + group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') + && format('LJ-{0}-{1}', github.run_id, github.run_attempt) + || format('LJ-{0}-{1}', github.workflow, github.ref) }} + cancel-in-progress: true + +jobs: + test-tarantool-release: + uses: tarantool/tarantool/.github/workflows/release.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-release_asan_clang: + uses: tarantool/tarantool/.github/workflows/release_asan_clang.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-release_clang: + uses: tarantool/tarantool/.github/workflows/release_clang.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-release_lto: + uses: tarantool/tarantool/.github/workflows/release_lto.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} + + test-tarantool-release_lto_clang: + uses: tarantool/tarantool/.github/workflows/release_lto_clang.yml@fckxorg/WIP-ci-integration-on-purpose-not-in-fork + with: + submodule: luajit + revision: ${{ github.sha }} diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index cb4ba57b21..937f2d619d 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -82,38 +82,3 @@ jobs: - name: test run: cmake --build . --parallel --target LuaJIT-test working-directory: ${{ env.BUILDDIR }} - - - test-tarantool: - strategy: - fail-fast: false - matrix: - ARCH: [ARM64, x86_64] - BUILDTYPE: [Debug, Release] - GC64: [ON, OFF] - OS: [Linux, macOS] - include: - - BUILDTYPE: Debug - CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug - - BUILDTYPE: Release - CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo - exclude: - - ARCH: ARM64 - GC64: OFF - - OS: macOS - GC64: OFF - name: > - Tarantool - (${{ matrix.OS }}/${{ matrix.ARCH }}) - ${{ matrix.BUILDTYPE }} - GC64:${{ matrix.GC64 }} - needs: test-luajit - uses: tarantool/tarantool/.github/workflows/luajit-integration.yml@master - with: - CMAKE_EXTRA_PARAMS: > - -G Ninja - ${{ matrix.CMAKEFLAGS }} - -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }} - arch: ${{ matrix.ARCH }} - os: ${{ matrix.OS }} - revision: ${{ github.sha }}