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 63A99A5BE2F; Wed, 21 Feb 2024 18:25:21 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 63A99A5BE2F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1708529121; bh=9z4XVJ9WgZ2Y4wcWYZGkusETG9v/0Yj365lEyWIZJV8=; h=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=vycqbHKBzrTL5+vCvETz+YIjQIdFrewK2NHxEJ1no4np9cHBdQR4FJhPsrljeWtqa ciFgFqaeAfB8WwZBQTGFRmDgcnQH9/wY2hfXXHFfHpzRZ0s47JuX/0bFZ5/CHx0P1S j8537GXTWCdlj7fV35912hxA3FKW2uo3dMgNpd0M= Received: from smtp54.i.mail.ru (smtp54.i.mail.ru [95.163.41.89]) (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 535FEA5BE01 for ; Wed, 21 Feb 2024 18:25:20 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 535FEA5BE01 Received: by smtp54.i.mail.ru with esmtpa (envelope-from ) id 1rcoTG-0000000DDPb-0v9u; Wed, 21 Feb 2024 18:25:18 +0300 Date: Wed, 21 Feb 2024 18:21:19 +0300 To: Maxim Kokryashkin Message-ID: References: <20240216222420.179993-1-m.kokryashkin@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240216222420.179993-1-m.kokryashkin@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD90B4B6FE9E606E496BDDC6C3EAAC562B006F5046F2EAD813400894C459B0CD1B94009DE60ACEFBB94F5E161C43A85B0EB1E98A03307008B4753CB4D1DF75971FFAB5D286C5C76880D X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE751DD1FEBB966604DEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F79006372D00EC45170C2A368638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D8ADC73482C0A5984EAC88E7ECC3AA9936677D0533086EBCCBCC7F00164DA146DAFE8445B8C89999728AA50765F7900637D0FEED2715E18529389733CBF5DBD5E9C8A9BA7A39EFB766F5D81C698A659EA7CC7F00164DA146DA9985D098DBDEAEC81D471462564A2E19F6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA73AA81AA40904B5D9A18204E546F3947C61191FCD0E7B64B6302FCEF25BFAB3454AD6D5ED66289B523666184CF4C3C14F6136E347CC761E07725E5C173C3A84C317C4529148F6610BBA3038C0950A5D36B5C8C57E37DE458B330BD67F2E7D9AF16D1867E19FE14079C09775C1D3CA48CF17B107DEF921CE791DD303D21008E298D5E8D9A59859A8B6B372FE9A2E580EFC725E5C173C3A84C3EBF4D8D28E8B690335872C767BF85DA2F004C90652538430E4A6367B16DE6309 X-C1DE0DAB: 0D63561A33F958A5CCCF1A23B0DD124E5002B1117B3ED696F1333A66E20FCB5DC81EEE05487B0209823CB91A9FED034534781492E4B8EEAD17AEC49845D0B908 X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CFAB2094F126D526D3BFE5090DFD1941F94915BDFD339C95D13A23ECDFE1A95824A161E968D9DBB349F1AD97FD9824DBCD7264EBAECC8E8E160686C24735698D0518B654099ABB37E6C226CC413062362A913E6812662D5F2A5EAB5682573093F7837F15F2B5E4A70B33F2C28C22F508233FCF178C6DD14203 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojhuvRynhHMbrC+ijHADLuVw== X-Mailru-Sender: 11C2EC085EDE56FAC07928AF2646A769C44E79505A222238AC8EDD30083ED68EAA1025D0D0D7DDA8B7CBEF92542CD7C88B0A2698F12F5C9EC77752E0C033A69E86920BD37369036789A8C6A0E60D2BB63A5DB60FBEB33A8A0DA7A0AF5A3A8387 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 Kaplun via Tarantool-patches Reply-To: Sergey Kaplun Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi, Maxim! Thanks for the patch! Please consider my questions below. On 17.02.24, 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. > --- I see that PR [1] isn't backported to release/2.11 and release/3.0 branches, so newly introduced workflow won't work on them after backporting to the corresponding branches. How should we track new workflows to be added in the Tarantool's repo? Or if some workflow will be deleted (except a red CI of cause:))? Do all workflows run LuaJIT-test before Tarantool tests? Is there a way to skip LuaJIT tests for workflows that duplicate luajit-integration.yml? > Branch: https://github.com/tarantool/luajit/tree/fckxorg/integration-testing > .github/workflows/exotic-builds-testing.yml | 34 +++++ > .github/workflows/tarantool-integration.yml | 35 ++++++ > .github/workflows/testing.yml | 130 +++++++++++++++----- > 3 files changed, 169 insertions(+), 30 deletions(-) > create mode 100644 .github/workflows/tarantool-integration.yml > > diff --git a/.github/workflows/exotic-builds-testing.yml b/.github/workflows/exotic-builds-testing.yml > index a9ba5fd5..46a3c1ef 100644 > --- a/.github/workflows/exotic-builds-testing.yml > +++ b/.github/workflows/exotic-builds-testing.yml > @@ -82,3 +82,37 @@ jobs: > - name: test > run: cmake --build . --parallel --target LuaJIT-test > working-directory: ${{ env.BUILDDIR }} > + Exotic builds is about **LuaJIT** exotic build. If we want exotic-tarantool integration or whatever we should use separate workflow. Also, it may be introduced as a separate job in the tarantool-integration workflow. Also, it should depends on luajit-testing, so it still should be placed back in the . > + 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 }} > + needs: test-exotic > + uses: tarantool/tarantool/.github/workflows/luajit-integration.yml@master Please, add the comment that only LuaJIT-tests are running in this workflow. > + 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-integration.yml b/.github/workflows/tarantool-integration.yml > new file mode 100644 > index 00000000..81abfb94 > --- /dev/null > +++ b/.github/workflows/tarantool-integration.yml The name of the workflow is a little bit misleading -- it is not integration with Tarantool, but integrational testing of Tarantool with connectors, etc.:). Here comes the question: Why do we need to separate this job from others? I suppose dependency on LuaJIT tests is good here and shouldn't be omitted -- if LuaJIT tests fail, there is no reason to run integrational tests of Tarantool with its ecosystem. > @@ -0,0 +1,35 @@ > +name: Tarantool integration testing > + > +on: > + push: > + branches-ignore: > + - '**-notest' > + - 'upstream-**' > + tags-ignore: > + - '**' > + > +concurrency: > + 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..f9e38bf1 100644 > --- a/.github/workflows/testing.yml > +++ b/.github/workflows/testing.yml > @@ -83,37 +83,107 @@ jobs: > run: cmake --build . --parallel --target LuaJIT-test > working-directory: ${{ env.BUILDDIR }} > > + test-tarantool-coverage: Please add a comment explaining why this job is included (IINM, it rather long to show some corner cases of our tests for profilers). > + 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 }} Can we use a matrix of jobs instead to avoid copy-pasting below? > + > + 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 Please add a comment about ancient compilers we want to check here. > + with: > + submodule: luajit > + revision: ${{ github.sha }} > + > + test-tarantool-memtx_allocator_based_on_malloc: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/memtx_allocator_based_on_malloc.yml@master Why do we need this workflow? > + 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-perf_micro: > + needs: test-luajit > + uses: tarantool/tarantool/.github/workflows/perf_micro.yml@master Why do we need this workflow? IINM, it includes only C perf tests that unrelated to Lua world of Tarantool. > + 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 }} There is the list of all Tarantool workflows: * codeql.yml * coverage.yml - used * coverity.yml * debug.yml - used * debug_aarch64.yml - used * debug_asan_clang.yml - used * default_gcc_centos_7.yml - used * freebsd.yml * fuzzing.yml * integration.yml - used * jepsen-cluster-txm.yml * jepsen-cluster.yml * jepsen-single-instance-txm.yml * jepsen-single-instance.yml * lango-stale-reviews.yml * lint.yml * luajit-integration.yml - used * memtx_allocator_based_on_malloc.yml - used * osx.yml * out_of_source.yml * packaging.yml * perf_cbench.yml * perf_linkbench_ssd.yml * perf_micro.yml * perf_nosqlbench_hash.yml * perf_nosqlbench_tree.yml * perf_sysbench.yml * perf_tpcc.yml * perf_tpch.yml * perf_ycsb_hash.yml * perf_ycsb_tree.yml * publish-module-api-doc.yaml * release.yml - used * release_asan_clang.yml - used * release_clang.yml - used * release_lto.yml - used * release_lto_clang.yml - used * reusable_build.yml * source.yml * static_build.yml - used * static_build_cmake_linux.yml - used * static_build_pack_test_deploy.yml * submodule_update.yml As you can see, LuaJIT-integration is used only 13/45. It will be nice to have the table in the commit message with the following format: workflow name (wo .yml) | used (+/-) | Reason > -- > 2.43.0 > [1]: https://github.com/tarantool/tarantool/pull/9560 -- Best regards, Sergey Kaplun