From 442ea9f3d5004d6b0f02c9269491d393dd202617 Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Fri, 26 Jan 2024 18:24:32 +0000 Subject: [PATCH 1/9] Added PR SDK build workflow --- .github/workflows/pr_check.yaml | 53 +++++++++++++++++++++++++++++++++ README.md | 10 +++++-- 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/pr_check.yaml diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml new file mode 100644 index 0000000000..bb5ba92c26 --- /dev/null +++ b/.github/workflows/pr_check.yaml @@ -0,0 +1,53 @@ +name: PR-check + +on: + push: + branches: + - master + - release-* + pull_request: + workflow_dispatch: + +jobs: + main: + name: Build YDB C++ SDK + runs-on: [ubuntu-22.04] + steps: + - name: Install dependencies + shell: bash + run: | + sudo apt-get -y install git cmake ninja-build libidn11-dev ragel yasm + wget https://apt.llvm.org/llvm.sh + chmod u+x llvm.sh + sudo ./llvm.sh 16 + wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz + tar -xvzf libiconv-1.15.tar.gz + cd libiconv-1.15 + ./configure --prefix=/usr/local + make + make install + cd .. + rm -rf llvm.sh libiconv-1.15 + - name: Checkout PR + uses: actions/checkout@v3 + if: github.event.pull_request.head.sha != '' + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Checkout + uses: actions/checkout@v3 + if: github.event.pull_request.head.sha == '' + - name: Configure + shell: bash + run: | + mkdir -p ../build + cd ../build + rm -rf * + cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_TOOLCHAIN_FILE=../ydb-cpp-sdk/clang.toolchain \ + ../ydb-cpp-sdk + - name: Build + shell: bash + run: | + cd ../build + ninja examples/all client/all + \ No newline at end of file diff --git a/README.md b/README.md index b7653d36fe..4019e80c71 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,18 @@ ```bash sudo apt-get -y install git cmake ninja-build libidn11-dev ragel yasm + wget https://apt.llvm.org/llvm.sh chmod u+x llvm.sh sudo ./llvm.sh 16 -``` -- libiconv: https://www.gnu.org/software/libiconv/ +wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz +tar -xvzf libiconv-1.15.tar.gz +cd libiconv-1.15 +./configure --prefix=/usr/local +make +make install +``` ## Create the work directory From f062a5d1c6adb0fecb1ee11f4aa10f7aa92cd45a Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Fri, 26 Jan 2024 18:31:15 +0000 Subject: [PATCH 2/9] Fixed workflow --- .github/workflows/pr_check.yaml | 8 ++++---- README.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index bb5ba92c26..2c3c474426 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -11,7 +11,7 @@ on: jobs: main: name: Build YDB C++ SDK - runs-on: [ubuntu-22.04] + runs-on: ubuntu-22.04 steps: - name: Install dependencies shell: bash @@ -24,8 +24,8 @@ jobs: tar -xvzf libiconv-1.15.tar.gz cd libiconv-1.15 ./configure --prefix=/usr/local - make - make install + sudo make + sudo make install cd .. rm -rf llvm.sh libiconv-1.15 - name: Checkout PR @@ -49,5 +49,5 @@ jobs: shell: bash run: | cd ../build - ninja examples/all client/all + ninja examples/all client/allcd \ No newline at end of file diff --git a/README.md b/README.md index 4019e80c71..575c69d7a2 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,8 @@ wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz tar -xvzf libiconv-1.15.tar.gz cd libiconv-1.15 ./configure --prefix=/usr/local -make -make install +sudo make +sudo make install ``` ## Create the work directory From 72a795c57f66ef4ba1a1c100b8289ee1ed861702 Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Fri, 26 Jan 2024 18:34:51 +0000 Subject: [PATCH 3/9] Fixed workflow --- .github/workflows/pr_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index 2c3c474426..f9f0771fa3 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -27,7 +27,7 @@ jobs: sudo make sudo make install cd .. - rm -rf llvm.sh libiconv-1.15 + sudo rm -rf llvm.sh libiconv-1.15 - name: Checkout PR uses: actions/checkout@v3 if: github.event.pull_request.head.sha != '' From 9057fb4aa4719b073fb6e372c616ba60bab378fa Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Fri, 26 Jan 2024 18:38:10 +0000 Subject: [PATCH 4/9] Fixed workflow --- .github/workflows/pr_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index f9f0771fa3..3c3760fa8a 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -49,5 +49,5 @@ jobs: shell: bash run: | cd ../build - ninja examples/all client/allcd + ninja examples/all client/all \ No newline at end of file From 79e0c629351e4e3cb954ef8ec6043c43d1c93c62 Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Fri, 26 Jan 2024 19:47:39 +0000 Subject: [PATCH 5/9] Added ccache support --- .github/workflows/pr_check.yaml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index 3c3760fa8a..1c29e245c8 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -27,7 +27,22 @@ jobs: sudo make sudo make install cd .. + (V=4.8.1; curl -L https://github.com/ccache/ccache/releases/download/v${V}/ccache-${V}-linux-x86_64.tar.xz | \ + sudo tar -xJ -C /usr/local/bin/ --strip-components=1 --no-same-owner ccache-${V}-linux-x86_64/ccache) sudo rm -rf llvm.sh libiconv-1.15 + - name: Prepare ccache timestamp + id: ccache_cache_timestamp + shell: cmake -P {0} + run: | + string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) + message("::set-output name=timestamp::${current_date}") + - name: Cache files + uses: actions/cache@v1.1.0 + with: + path: .ccache + key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} + restore-keys: | + ubuntu-22.04-ccache- - name: Checkout PR uses: actions/checkout@v3 if: github.event.pull_request.head.sha != '' @@ -43,11 +58,14 @@ jobs: cd ../build rm -rf * cmake -G Ninja -DCMAKE_BUILD_TYPE=Release \ + -DCCACHE_PATH=/usr/local/bin/ccache \ -DCMAKE_TOOLCHAIN_FILE=../ydb-cpp-sdk/clang.toolchain \ ../ydb-cpp-sdk - name: Build shell: bash run: | + ccache -z cd ../build ninja examples/all client/all - \ No newline at end of file + ccache -s + \ No newline at end of file From 51df961544bd69879e7e8b96772da405b6a62daf Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Fri, 26 Jan 2024 19:51:35 +0000 Subject: [PATCH 6/9] Fix --- .github/workflows/pr_check.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index 1c29e245c8..37facbe262 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -39,10 +39,10 @@ jobs: - name: Cache files uses: actions/cache@v1.1.0 with: - path: .ccache - key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: | - ubuntu-22.04-ccache- + path: .ccache + key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} + restore-keys: | + ubuntu-22.04-ccache- - name: Checkout PR uses: actions/checkout@v3 if: github.event.pull_request.head.sha != '' From 4c9cbb8ffe87632529bcb1ba757ded1408ab76cd Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Sun, 28 Jan 2024 23:06:06 +0000 Subject: [PATCH 7/9] Fix --- .github/workflows/pr_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index 37facbe262..dd0bbd7c6d 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -39,7 +39,7 @@ jobs: - name: Cache files uses: actions/cache@v1.1.0 with: - path: .ccache + path: ~/.ccache key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} restore-keys: | ubuntu-22.04-ccache- From df77172ffc8a8aba99556fe859e92a349a118b1c Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Mon, 29 Jan 2024 00:05:24 +0000 Subject: [PATCH 8/9] Fix --- .github/workflows/pr_check.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index dd0bbd7c6d..2b868e3b93 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -39,7 +39,7 @@ jobs: - name: Cache files uses: actions/cache@v1.1.0 with: - path: ~/.ccache + path: ../.ccache key: ubuntu-22.04-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} restore-keys: | ubuntu-22.04-ccache- @@ -65,6 +65,7 @@ jobs: shell: bash run: | ccache -z + export CCACHE_BASEDIR=`realpath ..` cd ../build ninja examples/all client/all ccache -s From 673ffbdcf2638fa2a97a1de45d5a4665a7842b84 Mon Sep 17 00:00:00 2001 From: Bulat Gayazov Date: Mon, 29 Jan 2024 12:11:17 +0000 Subject: [PATCH 9/9] Fix --- .github/workflows/pr_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_check.yaml b/.github/workflows/pr_check.yaml index 2b868e3b93..0186d020e0 100644 --- a/.github/workflows/pr_check.yaml +++ b/.github/workflows/pr_check.yaml @@ -65,7 +65,7 @@ jobs: shell: bash run: | ccache -z - export CCACHE_BASEDIR=`realpath ..` + export CCACHE_DIR=`realpath ../.ccache` cd ../build ninja examples/all client/all ccache -s