From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id BD9E29E225B; Mon, 4 Mar 2024 17:05:33 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org BD9E29E225B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1709561133; bh=LT2bqpFSOO9tFaSnc8PpixMKcG/CXg8JUBEWyypBrSw=; h=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=v9J4E8z6d1IG22GKQBCCuNdUPlB0rrrSuqZ/EJxKeM1lC68mw1ABjqg1j/xhq3X+A BbOaarbnROfJMlAaowivM5SxGiaSE+/c67nuu8RUbYOJvX2DbwNEbUTwcmQMTCoz2a iC4eCEy9Gl6Z0Qg0Z6+6+8UzRmqDWkbyVRh/KTbg= Received: from smtp50.i.mail.ru (smtp50.i.mail.ru [95.163.41.92]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 02FB49E225B for ; Mon, 4 Mar 2024 17:05:33 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 02FB49E225B Received: by smtp50.i.mail.ru with esmtpa (envelope-from ) id 1rh8wd-0000000EzxE-2dC3; Mon, 04 Mar 2024 17:05:32 +0300 Message-ID: <6d313e17-8f04-422f-8fce-252c55134a80@tarantool.org> Date: Mon, 4 Mar 2024 17:05:31 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Maxim Kokryashkin , tarantool-patches@dev.tarantool.org, skaplun@tarantool.org References: <20240301082538.107373-1-m.kokryashkin@tarantool.org> In-Reply-To: <20240301082538.107373-1-m.kokryashkin@tarantool.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: EEAE043A70213CC8 X-77F55803: 4F1203BC0FB41BD93B4404EFBC5FECACE5C610B1725ED3C661FD8B55A48E2EE5182A05F5380850404C228DA9ACA6FE276A6FA18E908DA6F003ED270C30F246C5D0B3AEC93F61756BB98030BD5B97143202AB01EBACA1B0D0 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE75AD53DF1D86BACA3EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637451A043D69349A7FEA1F7E6F0F101C6723150C8DA25C47586E58E00D9D99D84E1BDDB23E98D2D38B73AB1701401CD871CF7E6F7FF750B3E27FB1F86B06FB186CBE0BFE8A19914805A471835C12D1D9774AD6D5ED66289B5278DA827A17800CE767883B903EA3BAEA9FA2833FD35BB23D2EF20D2F80756B5F868A13BD56FB6657A471835C12D1D977725E5C173C3A84C3E478A468B35FE767117882F4460429728AD0CFFFB425014E868A13BD56FB6657D81D268191BDAD3DC09775C1D3CA48CF091AF3C34090AE74BA3038C0950A5D36C8A9BA7A39EFB766D91E3A1F190DE8FDBA3038C0950A5D36D5E8D9A59859A8B6A435B89EBA43239D76E601842F6C81A1F004C906525384303E02D724532EE2C3F43C7A68FF6260569E8FC8737B5C22494854413538E1713FE827F84554CEF50127C277FBC8AE2E8BF1175FABE1C0F9B6AAAE862A0553A39223F8577A6DFFEA7CE52E467C461EF0E943847C11F186F3C59DAA53EE0834AAEE X-C1DE0DAB: 0D63561A33F958A50468FA4A0AAD7EDC5002B1117B3ED696F9A73F0FA9664AA803803A57F48E4E5A823CB91A9FED034534781492E4B8EEAD0BF031CF3BA28239BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CF5079484BC1ECC66718D5A8E5A8118B1D3BC6BBA92E686DE58B1908D3515791735896E83BF38A9601A2A143A52978B9DDC3F05586846DCA814AA9D8C29EB82DE8FBDAA593DD122BEFC226CC413062362A913E6812662D5F2AB9AF64DB4688768036DF5FE9C0001AF333F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2bioj+F5rnR9AEql/8XPC22ZQgA== X-Mailru-Sender: 11C2EC085EDE56FAC07928AF2646A769BCB6144EBE220D2203ED270C30F246C5D0B3AEC93F61756BB7CBEF92542CD7C8795FA72BAB74744FC77752E0C033A69EA16A481184E8BB1C9B38E6EA4F046BE03A5DB60FBEB33A8A0DA7A0AF5A3A8387 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH luajit] ci: extend tarantool integration testing X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Sergey Bronnikov via Tarantool-patches Reply-To: Sergey Bronnikov Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi, Max thanks for updates. LGTM with minor comments below. On 3/1/24 11:25, Maxim Kokryashkin wrote: > This patch makes use of reusable workflows from the > Tarantool repository, so now LuaJIT CI tests integration > in all relevant workflows. > > Also, this patch disables MacOS testing for Tarantool > integration since those runs were made nightly in the > Tarantool repo. > > As noted in the documentation[1], it is impossible for a single > workflow call tree to include more than 20 workflows. To > overcome this limitation, workflows are started in a bunch of > separate files. This makes it impossible to depend on LuaJIT-only > jobs for integration workflow since it is impossible to make > cross-dependencies between workflow files. > > The name of a callee workflow cannot be substituted using a > matrix[2], so workflow calls are copied and pasted instead. > > Table below shows which workflows are enabled and why. > > Workflow name |+/-| Reason > ----------------------------------------------------------------- > codeql | - | Not relevant to LuaJIT. > coverage | + | Long tests for profilers. > coverity | - | Cron workflow. > debug | + | Tarantool debug build. > debug_aarch64 | + | Tarantool debug build. > debug_asan_clang | + | Tarantool debug build. > default_gcc_centos_7 | + | Ancient gcc build. better: "gcc version". Feel free to ignore. > freebsd | - | Nightly build. > fuzzing | - | Impossible to bump LuaJIT. > integration | + | Tarantool ecosystem. > jepsen-cluster-txm | - | Manual workflow. > jepsen-cluster | - | Manual workflow. > jepsen-single-instance-txm | - | Cron workflow. > jepsen-single-instance | - | Cron workflow. > lango-stale-reviews | - | Cron workflow. > lint | - | LuaJIT has its own lint. > luajit-integration | + | Exotic LuaJIT options. > memtx_allocator_based_on_malloc | + | Not relevant to LuaJIT. typo: s/+/-/ > osx | - | Nightly build. > out_of_source | - | Not relevent to LuaJIT. > packaging | - | No LuaJIT-relevant variety. > perf_cbench | - | Not enabled for PRs. > perf_linkbench_ssd | - | Not enabled for PRs. > perf_micro | - | Not relevant to LuaJIT. > perf_nosqlbench_hash | - | Not enabled for PRs. > perf_nosqlbench_tree | - | Not enabled for PRs. > perf_sysbench | - | Not enabled for PRs. > perf_tpcc | - | Not enabled for PRs. > perf_tpch | - | Not enabled for PRs. > perf_ycsb_hash | - | Not enabled for PRs. > perf_ycsb_tree | - | Not enabled for PRs. > publish-module-api-doc | - | No Doxygen in LuaJIT. > release | + | Tarantool release build. > release_asan_clang | + | Tarantool release build. > release_clang | + | Tarantool release build. > release_lto | + | Tarantool release build. > release_lto_clang | + | Tarantool release build. > reusable_build | - | Utility for integration. > source | - | Not enabled for PRs. > static_build | + | Tarantool static build. > static_build_cmake_linux | + | Tarantool static build. > static_build_pack_test_deploy | - | Utility for packaging. I would left "static_build" [1] and skip "static_build_cmake_linux" [2]. I don't see a big difference for static_build and static_build_cmake_linux, build commands are the same, both workflows are running on ubuntu-20.04-self-hosted. The difference is in builddir location: first is in source build, the second one is out of source build, see [4]. 1. https://github.com/tarantool/tarantool/blob/f267af24058c7cb49bf2a6403b1f3c51b41d22ae/.test.mk#L165-L171 2. https://github.com/tarantool/tarantool/blob/f267af24058c7cb49bf2a6403b1f3c51b41d22ae/.github/workflows/static_build_cmake_linux.yml#L1 4. https://github.com/tarantool/tarantool/blob/f267af24058c7cb49bf2a6403b1f3c51b41d22ae/.test.mk#L156-L171 > submodule_update | - | Not enabled for PRs. > > [1]: https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations > [2]: https://github.com/orgs/community/discussions/45342#discussioncomment-4779360 > --- > Branch: https://github.com/tarantool/luajit/tree/fckxorg/integration-testing > > .github/workflows/exotic-tarantool.yml | 62 ++++++++++++ > .github/workflows/tarantool-ecosystem.yml | 35 +++++++ > .github/workflows/testing.yml | 116 ++++++++++++++++------ > 3 files changed, 183 insertions(+), 30 deletions(-) > create mode 100644 .github/workflows/exotic-tarantool.yml > create mode 100644 .github/workflows/tarantool-ecosystem.yml > > diff --git a/.github/workflows/exotic-tarantool.yml b/.github/workflows/exotic-tarantool.yml > new file mode 100644 > index 00000000..be55291a > --- /dev/null > +++ b/.github/workflows/exotic-tarantool.yml > @@ -0,0 +1,62 @@ > +name: "Exotic Tarantool 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('{0}-{1}', github.run_id, github.run_attempt) > + || format('{0}-{1}', github.workflow, github.ref) }} > + cancel-in-progress: true > + > +jobs: > + test-exotic-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 }} > + # XXX: Only LuaJIT-tests are running in this workflow. > + 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 }} > diff --git a/.github/workflows/tarantool-ecosystem.yml b/.github/workflows/tarantool-ecosystem.yml > new file mode 100644 > index 00000000..82a47fe1 > --- /dev/null > +++ b/.github/workflows/tarantool-ecosystem.yml > @@ -0,0 +1,35 @@ > +name: Tarantool ecosystem 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('{0}-{1}', github.run_id, github.run_attempt) > + || format('{0}-{1}', github.workflow, github.ref) }} > + cancel-in-progress: true > + > +jobs: > + test-tarantool-integration: > + uses: tarantool/tarantool/.github/workflows/integration.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml > index cb4ba57b..7bd527be 100644 > --- a/.github/workflows/testing.yml > +++ b/.github/workflows/testing.yml > @@ -83,37 +83,93 @@ jobs: > run: cmake --build . --parallel --target LuaJIT-test > working-directory: ${{ env.BUILDDIR }} > > + test-tarantool-coverage: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/coverage.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > > - 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 }} > + test-tarantool-debug: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/debug.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-debug_aarch64: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/debug_aarch64.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-debug_asan_clang: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/debug_asan_clang.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-default_gcc_centos_7: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/default_gcc_centos_7.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-out_of_source: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/out_of_source.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-release: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/release.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-release_asan_clang: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/release_asan_clang.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-release_clang: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/release_clang.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-release_lto: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/release_lto.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-release_lto_clang: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/release_lto_clang.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-static_build: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/static_build.yml@master > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-static_build_cmake_linux: > needs: test-luajit > - uses: tarantool/tarantool/.github/workflows/luajit-integration.yml@master > + uses: tarantool/tarantool/.github/workflows/static_build_cmake_linux.yml@master > with: > - CMAKE_EXTRA_PARAMS: > > - -G Ninja > - ${{ matrix.CMAKEFLAGS }} > - -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }} > - arch: ${{ matrix.ARCH }} > - os: ${{ matrix.OS }} > + submodule: luajit > revision: ${{ github.sha }} > -- > 2.43.0 >