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 886D19DB442; Wed, 6 Mar 2024 23:40:36 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 886D19DB442 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1709757636; bh=h+dBnnKiLyHgqMg9W1AEo4eVL9HphPTFoG0/8GP31So=; 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=lrhN/668VK0ojIJjsa8zhRS+yj+hud9QxvOvBhNzlOKzpygBgVuA+EIo5kHrg148X BOF4rGDCdV/xE0ozjYcqKzUrUGKpuKmISRT62Rab07xpQDUhynW+SzJYhxlWLtcer5 4/CdlE/txFENbvz7/kpGUC8QqqVlKdqmQEPp+UDU= Received: from smtp61.i.mail.ru (smtp61.i.mail.ru [95.163.41.99]) (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 D3EB29DB442 for ; Wed, 6 Mar 2024 23:40:34 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org D3EB29DB442 Received: by smtp61.i.mail.ru with esmtpa (envelope-from ) id 1rhy41-000000008iJ-0QWl; Wed, 06 Mar 2024 23:40:34 +0300 Date: Wed, 6 Mar 2024 23:40:31 +0300 To: Sergey Bronnikov Message-ID: References: <20240301082538.107373-1-m.kokryashkin@tarantool.org> <6d313e17-8f04-422f-8fce-252c55134a80@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6d313e17-8f04-422f-8fce-252c55134a80@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD987C0EE6E7F0A597D14B510CDCFC426C47375EECC9EF82252182A05F5380850405E4F920D5BB2D1533DE06ABAFEAF6705A7119F704013172C868312D9CECC96AF5AA816C561F801B6 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7BF6702EC5472AA0FEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063775432D36FC05FD598638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D87EF0A2C2CFD3334DFF545BA4E64293C19D850C9CC9080770CC7F00164DA146DAFE8445B8C89999728AA50765F7900637F3E38EE449E3E2AE389733CBF5DBD5E9C8A9BA7A39EFB766F5D81C698A659EA7CC7F00164DA146DA9985D098DBDEAEC8D2DCF9CF1F528DBCF6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA73AA81AA40904B5D9A18204E546F3947C64E7220B7C5505926136E347CC761E074AD6D5ED66289B523666184CF4C3C14F6136E347CC761E07725E5C173C3A84C35E208EBACFE9213EBA3038C0950A5D36B5C8C57E37DE458B330BD67F2E7D9AF16D1867E19FE14079C09775C1D3CA48CF17B107DEF921CE791DD303D21008E298D5E8D9A59859A8B6B372FE9A2E580EFC725E5C173C3A84C3483320834B361D1F089D37D7C0E48F6C5571747095F342E88FB05168BE4CE3AF X-C1DE0DAB: 0D63561A33F958A5D3741F356E4C0B455002B1117B3ED696C8ED04B0EC8126FED57BAD45EC4C5DE1823CB91A9FED034534781492E4B8EEAD5E26F3260102D3FBBDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0ADE00A9FD3E00BEEDF3FED46C3ACD6F73ED3581295AF09D3DF87807E0823442EA2ED31085941D9CD0AF7F820E7B07EA4CFFBFB3FD97E8D72118B9846C45D48A9533D6968F63AE323FC51924BFD3F795E63744A43F78FC6FA90A2A143A52978B9DDCA1FB609E33B4614B86A90B75E21B49AEA7B8B21898F59EEC226CC413062362A913E6812662D5F2A54F6898A6FDCBDC72A617DFBE5FEC2C6383653B6C8D9AE0FD16FCAA6493B703A X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2bioj9auBsoWJeY8bl2OJDXPMhQ== X-Mailru-Sender: 7940E2A4EB16C9976F80DCDCD59EC22778C84394D09FA6F43DE06ABAFEAF6705A7119F704013172CE2527C969975515CFF9FCECFB8D89CB6C77752E0C033A69E235A20A81F3B0E39AB3C5F247CB2F7F93A5DB60FBEB33A8A0DA7A0AF5A3A8387 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: Maxim Kokryashkin via Tarantool-patches Reply-To: Maxim Kokryashkin Cc: Maxim Kokryashkin , tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi, Sergey! Thanks for the review! Consider my answers below. On Mon, Mar 04, 2024 at 05:05:31PM +0300, Sergey Bronnikov wrote: > 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". Fteel free to ignore. Fixed. > > 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/+/-/ Fixed. > > 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]. Fixed. > > > 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 > >