From 2153a5f269d951ae3045901745b5a1124aa302e4 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 15:46:20 +0700 Subject: [PATCH 01/55] add job : docs_test --- .github/workflows/build.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..95bd2478 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,21 @@ +name: Test-docs + +on: + push: + branches: + # - main + - gha-cicd + # tags: + # - 'v*' + + pull_request: + branches: + - main + +jobs: + docs_test: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Docs Test + run: ./gradlew javadoc From 67e22baf76369f8ce71b4f884f455771645efd3c Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 15:46:56 +0700 Subject: [PATCH 02/55] edit trigger branch to test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 95bd2478..5d2bc2ea 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -4,7 +4,7 @@ on: push: branches: # - main - - gha-cicd + - feat/gha-cicd # tags: # - 'v*' From c10ece3191b62199a2906ee9ec1a520365ec1702 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 15:59:41 +0700 Subject: [PATCH 03/55] add concurrency job --- .github/workflows/build.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5d2bc2ea..da2034e8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,5 +1,9 @@ name: Test-docs +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: push: branches: @@ -14,8 +18,25 @@ on: jobs: docs_test: + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 - name: Docs Test run: ./gradlew javadoc + + + + unit_test: + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Pull + run: | + docker pull klaytn/build_base:latest + docker image tag klaytn/build_base:latest klaytn \ No newline at end of file From 5b0a627b5143d61e9d34a79e57d9ef0a45b3d5ef Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 16:01:16 +0700 Subject: [PATCH 04/55] debug : remove concurency --- .github/workflows/build.yaml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index da2034e8..913e616a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -18,9 +18,7 @@ on: jobs: docs_test: - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 @@ -30,9 +28,7 @@ jobs: unit_test: - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 From b618714a88ad1cb8703a2d6101a3464d7e6d18af Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 16:07:48 +0700 Subject: [PATCH 05/55] add unit_test step --- .github/workflows/build.yaml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 913e616a..d31e0330 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,23 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 - - name: Pull + - name: pull_klaytn_image run: | docker pull klaytn/build_base:latest - docker image tag klaytn/build_base:latest klaytn \ No newline at end of file + docker image tag klaytn/build_base:latest klaytn + - name: start_test_network + run: | + docker compose up -d + - name: check_test_network + run: | + MAXRETRY=600 + RETRY=0 + while [ $RETRY -lt $MAXRETRY ] + do + if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + echo "Klaytn RPC server is up" + - name: Check environment + run: java --version && gradle --version + - name: Test + run: ./gradlew clean test --debug --scan + \ No newline at end of file From e76665f775e3ada8eedda6ec8e5dc366336056ff Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 16:12:32 +0700 Subject: [PATCH 06/55] update working dir --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d31e0330..3dc510fb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -30,6 +30,7 @@ jobs: unit_test: runs-on: ubuntu-20.04 + steps: - uses: actions/checkout@v4 - name: pull_klaytn_image @@ -39,6 +40,7 @@ jobs: - name: start_test_network run: | docker compose up -d + working-directory: ./.circleci/images - name: check_test_network run: | MAXRETRY=600 @@ -51,4 +53,3 @@ jobs: run: java --version && gradle --version - name: Test run: ./gradlew clean test --debug --scan - \ No newline at end of file From 83f9fbe5a2656ad5ae9c0ca0163a5b57d583e494 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 16:15:32 +0700 Subject: [PATCH 07/55] correct check_test_network --- .github/workflows/build.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3dc510fb..3055aef6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -49,6 +49,17 @@ jobs: do if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then echo "Klaytn RPC server is up" + break + else + echo "wait for Klaytn RPC server..." + sleep 5 + fi + RETRY=$(($RETRY+5)) + done + if [ $RETRY -eq $MAXRETRY ]; then + echo "failed to connect Klaytn RPC server" + exit 1 + fi - name: Check environment run: java --version && gradle --version - name: Test From 01ad135b2e0081acaa208943a3411b274a97190d Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 5 Mar 2025 17:06:42 +0700 Subject: [PATCH 08/55] build test --- .github/workflows/build.yaml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3055aef6..94eeab4d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -28,9 +28,7 @@ jobs: unit_test: - runs-on: ubuntu-20.04 - steps: - uses: actions/checkout@v4 - name: pull_klaytn_image @@ -64,3 +62,20 @@ jobs: run: java --version && gradle --version - name: Test run: ./gradlew clean test --debug --scan + + build_test: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Check rc version + run: | + if [ -z "$CIRCLE_TAG" ]; then + echo "this is not RC version" + else + sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle + awk '/version '\''/' build.gradle + fi + - name: build_test + run: | + ./gradlew clean + ./gradlew build --debug -x test \ No newline at end of file From a26e51da5de76c0f0356383a747f6691475b001f Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Thu, 13 Mar 2025 16:31:52 +0700 Subject: [PATCH 09/55] setup unit_test_android --- .github/workflows/build.yaml | 123 ++++++++++++++++++++++++++--------- 1 file changed, 91 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 94eeab4d..99d260f1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,24 +17,83 @@ on: - main jobs: - docs_test: + # docs_test: +# + # runs-on: ubuntu-20.04 + # steps: + # - uses: actions/checkout@v4 + # - name: Docs Test + # run: ./gradlew javadoc +# +# +# + # unit_test: + # runs-on: ubuntu-20.04 + # steps: + # - uses: actions/checkout@v4 + # - name: pull_klaytn_image + # run: | + # docker pull klaytn/build_base:latest + # docker image tag klaytn/build_base:latest klaytn + # - name: start_test_network + # run: | + # docker compose up -d + # working-directory: ./.circleci/images + # - name: check_test_network + # run: | + # MAXRETRY=600 + # RETRY=0 + # while [ $RETRY -lt $MAXRETRY ] + # do + # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + # echo "Klaytn RPC server is up" + # break + # else + # echo "wait for Klaytn RPC server..." + # sleep 5 + # fi + # RETRY=$(($RETRY+5)) + # done + # if [ $RETRY -eq $MAXRETRY ]; then + # echo "failed to connect Klaytn RPC server" + # exit 1 + # fi + # - name: Check environment + # run: java --version && gradle --version + # - name: Test + # run: ./gradlew clean test --debug --scan +# + # build_test: + # runs-on: ubuntu-20.04 + # steps: + # - uses: actions/checkout@v4 + # - name: Check rc version + # run: | + # if [ -z "$CIRCLE_TAG" ]; then + # echo "this is not RC version" + # else + # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle + # awk '/version '\''/' build.gradle + # fi + # - name: build_test + # run: | + # ./gradlew clean + # ./gradlew build --debug -x test - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Docs Test - run: ./gradlew javadoc - - - - unit_test: - runs-on: ubuntu-20.04 + unit_test_android: + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: include_android_instrumented_test_as_subproject + run: | + sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle + - name: setup_android_test_files + run: | + bash .circleci/setup_android_instrumented_test.sh - name: pull_klaytn_image run: | - docker pull klaytn/build_base:latest - docker image tag klaytn/build_base:latest klaytn + docker pull klaytn/build_base:lates + docker image tag klaytn/build_base: - name: start_test_network run: | docker compose up -d @@ -58,24 +117,24 @@ jobs: echo "failed to connect Klaytn RPC server" exit 1 fi - - name: Check environment - run: java --version && gradle --version - - name: Test - run: ./gradlew clean test --debug --scan + - name: check_android_version + run: | + version=$(.circleci/version.sh) + sed -i "s/version '.*'/version '${version}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - build_test: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Check rc version - run: | - if [ -z "$CIRCLE_TAG" ]; then - echo "this is not RC version" - else - sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle - awk '/version '\''/' build.gradle - fi - - name: build_test + if [ -z "$CIRCLE_TAG" ]; then + echo "this is not RC version" + else + echo "trigger CIRCLE_TAG $CIRCLE_TAG" + sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + fi + + awk '/version '\''/' build.gradle + awk '/ext.web3jVersion = '\''/' build.gradle + - name: Create avd run: | - ./gradlew clean - ./gradlew build --debug -x test \ No newline at end of file + SYSTEM_IMAGES="system-images;android-29;default;x86" + sdkmanager "$SYSTEM_IMAGES" + echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file From 9fed2674fbb7ad68c95394771916b46856623148 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Thu, 13 Mar 2025 16:36:56 +0700 Subject: [PATCH 10/55] add .circleci/setup_android_instrumented_test-gha.sh --- .../setup_android_instrumented_test-gha.sh | 27 +++++++++++++++++++ .github/workflows/build.yaml | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 .circleci/setup_android_instrumented_test-gha.sh diff --git a/.circleci/setup_android_instrumented_test-gha.sh b/.circleci/setup_android_instrumented_test-gha.sh new file mode 100755 index 00000000..a44b5378 --- /dev/null +++ b/.circleci/setup_android_instrumented_test-gha.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +PROJECT_DIR=/home/runner/work/caver-java/caver-java + +CORE_DIR=$PROJECT_DIR/core +CORE_TEST_DIR=$PROJECT_DIR/core/src/test +CORE_TEST_CAVER_DIR=$CORE_TEST_DIR/java/com/klaytn/caver + +ANDROID_DIR=$PROJECT_DIR/android_instrumented_test +ANDROID_TEST_DIR=$ANDROID_DIR/src/androidTest +ANDROID_TEST_CAVER_DIR=$ANDROID_TEST_DIR/java/com/klaytn/caver/android_instrumented_test + +mkdir -p $ANDROID_TEST_CAVER_DIR + +## To do instrumented tests on Android Emulator, we use test files we already have at `core/src/test/java/com.klaytn.caver/*`. +# 1. Copy unit test files of core to re-use without re-writing same test-cases just for instrumented test. +cp -r $CORE_TEST_CAVER_DIR/base $ANDROID_TEST_CAVER_DIR/ +cp -r $CORE_TEST_CAVER_DIR/common $ANDROID_TEST_CAVER_DIR/ +cp -r $CORE_TEST_DIR/resources $ANDROID_TEST_DIR/ + +# 2. To make instrumented test works, we need to replace some contents. +find $ANDROID_TEST_CAVER_DIR -type f -name '*.java' | xargs sed -i 's/package com.klaytn.caver/package com.klaytn.caver.android_instrumented_test/g' +find $ANDROID_TEST_CAVER_DIR -type f -name '*.java' | xargs sed -i 's/import static com.klaytn.caver/import static com.klaytn.caver.android_instrumented_test/g' +find $ANDROID_TEST_CAVER_DIR -type f -name '*.java' | xargs sed -i 's/import com.klaytn.caver.base/import com.klaytn.caver.android_instrumented_test.base/g' +find $ANDROID_TEST_CAVER_DIR -type f -name '*.java' | xargs sed -i 's/Caver.DEFAULT_URL/"http:\/\/10.0.2.2:8551"/g' +find $ANDROID_TEST_CAVER_DIR -type f -name '*.java' | xargs sed -i 's/localhost/10.0.2.2/g' +## \ No newline at end of file diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 99d260f1..11628fff 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -89,7 +89,7 @@ jobs: sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle - name: setup_android_test_files run: | - bash .circleci/setup_android_instrumented_test.sh + bash .circleci/setup_android_instrumented_test-gha.sh - name: pull_klaytn_image run: | docker pull klaytn/build_base:lates From de0fa9f2983d918c1c9f3e0ec74fc73bd44215b8 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Thu, 13 Mar 2025 16:39:47 +0700 Subject: [PATCH 11/55] update ci --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 11628fff..c93861e4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -92,8 +92,8 @@ jobs: bash .circleci/setup_android_instrumented_test-gha.sh - name: pull_klaytn_image run: | - docker pull klaytn/build_base:lates - docker image tag klaytn/build_base: + docker pull klaytn/build_base:latest + docker image tag klaytn/build_base:latest klaytn - name: start_test_network run: | docker compose up -d From 97e82c62afadf9212caf963442c660ab439ae1ea Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 15:40:56 +0700 Subject: [PATCH 12/55] add install android-sdk step --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c93861e4..2d2845ed 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -135,6 +135,7 @@ jobs: awk '/ext.web3jVersion = '\''/' build.gradle - name: Create avd run: | + sudo apt update && sudo apt install android-sdk -y SYSTEM_IMAGES="system-images;android-29;default;x86" sdkmanager "$SYSTEM_IMAGES" echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file From 133a7408162f0f9b3f8f5981bccce62a9c38882d Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 17:06:01 +0700 Subject: [PATCH 13/55] CICD : add install sdkmanager step --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2d2845ed..e1388b68 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -135,7 +135,7 @@ jobs: awk '/ext.web3jVersion = '\''/' build.gradle - name: Create avd run: | - sudo apt update && sudo apt install android-sdk -y + sudo apt update && sudo apt install sdkmanager -y SYSTEM_IMAGES="system-images;android-29;default;x86" sdkmanager "$SYSTEM_IMAGES" echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file From dbf36510183f4e97ff8e2a5679da9acbf51c06cd Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 17:09:23 +0700 Subject: [PATCH 14/55] update cicd --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e1388b68..021eb4f3 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -135,7 +135,7 @@ jobs: awk '/ext.web3jVersion = '\''/' build.gradle - name: Create avd run: | - sudo apt update && sudo apt install sdkmanager -y + sudo apt update && sudo apt install android-sdk sdkmanager -y SYSTEM_IMAGES="system-images;android-29;default;x86" sdkmanager "$SYSTEM_IMAGES" echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file From 7025e605bb5e668b969d575022f55ac968288ce2 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 17:34:01 +0700 Subject: [PATCH 15/55] update ci, change way to install sdk manager --- .github/workflows/build.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 021eb4f3..bb5f382d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -135,7 +135,11 @@ jobs: awk '/ext.web3jVersion = '\''/' build.gradle - name: Create avd run: | - sudo apt update && sudo apt install android-sdk sdkmanager -y + sudo apt-get update && apt-get install -y unzip wget + wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O cmdline-tools.zip + mkdir -p $ANDROID_HOME/cmdline-tools + unzip -q cmdline-tools.zip -d $ANDROID_HOME/cmdline-tools + mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest SYSTEM_IMAGES="system-images;android-29;default;x86" - sdkmanager "$SYSTEM_IMAGES" + $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "$SYSTEM_IMAGES" echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file From 2a403b3c969ec7a23596512895fcf3309b64bd45 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 17:36:48 +0700 Subject: [PATCH 16/55] update ci, change way to install sdk manager --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bb5f382d..12887e58 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -135,7 +135,7 @@ jobs: awk '/ext.web3jVersion = '\''/' build.gradle - name: Create avd run: | - sudo apt-get update && apt-get install -y unzip wget + sudo apt-get update && sudo apt-get install -y unzip wget wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O cmdline-tools.zip mkdir -p $ANDROID_HOME/cmdline-tools unzip -q cmdline-tools.zip -d $ANDROID_HOME/cmdline-tools From e90ca9b73d3ebf8f8cfbca01823029cd3a638995 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 17:43:03 +0700 Subject: [PATCH 17/55] switch to use reactivecircus/android-emulator-runner@v2 --- .github/workflows/build.yaml | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 12887e58..324f9151 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -133,13 +133,25 @@ jobs: awk '/version '\''/' build.gradle awk '/ext.web3jVersion = '\''/' build.gradle - - name: Create avd + + - name: Enable KVM run: | - sudo apt-get update && sudo apt-get install -y unzip wget - wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O cmdline-tools.zip - mkdir -p $ANDROID_HOME/cmdline-tools - unzip -q cmdline-tools.zip -d $ANDROID_HOME/cmdline-tools - mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest - SYSTEM_IMAGES="system-images;android-29;default;x86" - $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "$SYSTEM_IMAGES" - echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + script: ./gradlew connectedDebugAndroidTest --debug --stacktrace + # - name: Create avd + # run: | + # sudo apt-get update && sudo apt-get install -y unzip wget + # wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O cmdline-tools.zip + # mkdir -p $ANDROID_HOME/cmdline-tools + # unzip -q cmdline-tools.zip -d $ANDROID_HOME/cmdline-tools + # mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest + # SYSTEM_IMAGES="system-images;android-29;default;x86" + # $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "$SYSTEM_IMAGES" + # echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file From 2426235778d7a29b3f84e2c2bce4572055c9bb48 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 17:54:19 +0700 Subject: [PATCH 18/55] add upload artifact job --- .github/workflows/build.yaml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 324f9151..f1a8a547 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -145,13 +145,9 @@ jobs: with: api-level: 29 script: ./gradlew connectedDebugAndroidTest --debug --stacktrace - # - name: Create avd - # run: | - # sudo apt-get update && sudo apt-get install -y unzip wget - # wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O cmdline-tools.zip - # mkdir -p $ANDROID_HOME/cmdline-tools - # unzip -q cmdline-tools.zip -d $ANDROID_HOME/cmdline-tools - # mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest - # SYSTEM_IMAGES="system-images;android-29;default;x86" - # $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "$SYSTEM_IMAGES" - # echo "no" | avdmanager --verbose create avd -n test -k "$SYSTEM_IMAGES" \ No newline at end of file + - name: Upload test results + if: always() + uses: actions/upload-artifact@v2 + with: + name: test-results + path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest \ No newline at end of file From 03fa5020910a156484491500227fcf978c20bae2 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 17 Mar 2025 17:57:32 +0700 Subject: [PATCH 19/55] change upload job to actions/upload-artifact@v4 --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f1a8a547..0b7374cf 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -147,7 +147,7 @@ jobs: script: ./gradlew connectedDebugAndroidTest --debug --stacktrace - name: Upload test results if: always() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: test-results path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest \ No newline at end of file From 4f11dec132f1acc0a466027ce8f90544d7b54232 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 11:10:26 +0700 Subject: [PATCH 20/55] add step : build_test_android --- .github/workflows/build.yaml | 127 +++++++++++++++++++++-------------- 1 file changed, 77 insertions(+), 50 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0b7374cf..999d7e83 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -80,43 +80,83 @@ jobs: # ./gradlew clean # ./gradlew build --debug -x test - unit_test_android: + # unit_test_android: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: include_android_instrumented_test_as_subproject + # run: | + # sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle + # - name: setup_android_test_files + # run: | + # bash .circleci/setup_android_instrumented_test-gha.sh + # - name: pull_klaytn_image + # run: | + # docker pull klaytn/build_base:latest + # docker image tag klaytn/build_base:latest klaytn + # - name: start_test_network + # run: | + # docker compose up -d + # working-directory: ./.circleci/images + # - name: check_test_network + # run: | + # MAXRETRY=600 + # RETRY=0 + # while [ $RETRY -lt $MAXRETRY ] + # do + # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + # echo "Klaytn RPC server is up" + # break + # else + # echo "wait for Klaytn RPC server..." + # sleep 5 + # fi + # RETRY=$(($RETRY+5)) + # done + # if [ $RETRY -eq $MAXRETRY ]; then + # echo "failed to connect Klaytn RPC server" + # exit 1 + # fi + # - name: check_android_version + # run: | + # version=$(.circleci/version.sh) + # sed -i "s/version '.*'/version '${version}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + # if [ -z "$CIRCLE_TAG" ]; then + # echo "this is not RC version" + # else + # echo "trigger CIRCLE_TAG $CIRCLE_TAG" + # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + # fi + + # awk '/version '\''/' build.gradle + # awk '/ext.web3jVersion = '\''/' build.gradle + + # - name: Enable KVM + # run: | + # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + # sudo udevadm control --reload-rules + # sudo udevadm trigger --name-match=kvm + + # - name: run tests + # uses: reactivecircus/android-emulator-runner@v2 + # with: + # api-level: 29 + # script: ./gradlew connectedDebugAndroidTest --debug --stacktrace + # - name: Upload test results + # if: always() + # uses: actions/upload-artifact@v4 + # with: + # name: test-results + # path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest + + + build_test_android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: include_android_instrumented_test_as_subproject - run: | - sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle - - name: setup_android_test_files - run: | - bash .circleci/setup_android_instrumented_test-gha.sh - - name: pull_klaytn_image - run: | - docker pull klaytn/build_base:latest - docker image tag klaytn/build_base:latest klaytn - - name: start_test_network - run: | - docker compose up -d - working-directory: ./.circleci/images - - name: check_test_network - run: | - MAXRETRY=600 - RETRY=0 - while [ $RETRY -lt $MAXRETRY ] - do - if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - echo "Klaytn RPC server is up" - break - else - echo "wait for Klaytn RPC server..." - sleep 5 - fi - RETRY=$(($RETRY+5)) - done - if [ $RETRY -eq $MAXRETRY ]; then - echo "failed to connect Klaytn RPC server" - exit 1 - fi - name: check_android_version run: | version=$(.circleci/version.sh) @@ -134,20 +174,7 @@ jobs: awk '/version '\''/' build.gradle awk '/ext.web3jVersion = '\''/' build.gradle - - name: Enable KVM + - name: build_test run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - - name: run tests - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: 29 - script: ./gradlew connectedDebugAndroidTest --debug --stacktrace - - name: Upload test results - if: always() - uses: actions/upload-artifact@v4 - with: - name: test-results - path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest \ No newline at end of file + ./gradlew clean + ./gradlew build --debug -x test \ No newline at end of file From 07ea8b0f7a23509698804de58636e10c56d72309 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:12:34 +0700 Subject: [PATCH 21/55] enable all test docs steps --- .github/workflows/build.yaml | 267 +++++++++++++++++------------------ 1 file changed, 133 insertions(+), 134 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 999d7e83..562ed813 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,140 +17,139 @@ on: - main jobs: - # docs_test: -# - # runs-on: ubuntu-20.04 - # steps: - # - uses: actions/checkout@v4 - # - name: Docs Test - # run: ./gradlew javadoc -# -# -# - # unit_test: - # runs-on: ubuntu-20.04 - # steps: - # - uses: actions/checkout@v4 - # - name: pull_klaytn_image - # run: | - # docker pull klaytn/build_base:latest - # docker image tag klaytn/build_base:latest klaytn - # - name: start_test_network - # run: | - # docker compose up -d - # working-directory: ./.circleci/images - # - name: check_test_network - # run: | - # MAXRETRY=600 - # RETRY=0 - # while [ $RETRY -lt $MAXRETRY ] - # do - # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - # echo "Klaytn RPC server is up" - # break - # else - # echo "wait for Klaytn RPC server..." - # sleep 5 - # fi - # RETRY=$(($RETRY+5)) - # done - # if [ $RETRY -eq $MAXRETRY ]; then - # echo "failed to connect Klaytn RPC server" - # exit 1 - # fi - # - name: Check environment - # run: java --version && gradle --version - # - name: Test - # run: ./gradlew clean test --debug --scan -# - # build_test: - # runs-on: ubuntu-20.04 - # steps: - # - uses: actions/checkout@v4 - # - name: Check rc version - # run: | - # if [ -z "$CIRCLE_TAG" ]; then - # echo "this is not RC version" - # else - # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle - # awk '/version '\''/' build.gradle - # fi - # - name: build_test - # run: | - # ./gradlew clean - # ./gradlew build --debug -x test - - # unit_test_android: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: include_android_instrumented_test_as_subproject - # run: | - # sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle - # - name: setup_android_test_files - # run: | - # bash .circleci/setup_android_instrumented_test-gha.sh - # - name: pull_klaytn_image - # run: | - # docker pull klaytn/build_base:latest - # docker image tag klaytn/build_base:latest klaytn - # - name: start_test_network - # run: | - # docker compose up -d - # working-directory: ./.circleci/images - # - name: check_test_network - # run: | - # MAXRETRY=600 - # RETRY=0 - # while [ $RETRY -lt $MAXRETRY ] - # do - # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - # echo "Klaytn RPC server is up" - # break - # else - # echo "wait for Klaytn RPC server..." - # sleep 5 - # fi - # RETRY=$(($RETRY+5)) - # done - # if [ $RETRY -eq $MAXRETRY ]; then - # echo "failed to connect Klaytn RPC server" - # exit 1 - # fi - # - name: check_android_version - # run: | - # version=$(.circleci/version.sh) - # sed -i "s/version '.*'/version '${version}-android'/" build.gradle - # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - - # if [ -z "$CIRCLE_TAG" ]; then - # echo "this is not RC version" - # else - # echo "trigger CIRCLE_TAG $CIRCLE_TAG" - # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle - # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - # fi - - # awk '/version '\''/' build.gradle - # awk '/ext.web3jVersion = '\''/' build.gradle - - # - name: Enable KVM - # run: | - # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - # sudo udevadm control --reload-rules - # sudo udevadm trigger --name-match=kvm - - # - name: run tests - # uses: reactivecircus/android-emulator-runner@v2 - # with: - # api-level: 29 - # script: ./gradlew connectedDebugAndroidTest --debug --stacktrace - # - name: Upload test results - # if: always() - # uses: actions/upload-artifact@v4 - # with: - # name: test-results - # path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest + docs_test: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Docs Test + run: ./gradlew javadoc + + + + unit_test: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: pull_klaytn_image + run: | + docker pull klaytn/build_base:latest + docker image tag klaytn/build_base:latest klaytn + - name: start_test_network + run: | + docker compose up -d + working-directory: ./.circleci/images + - name: check_test_network + run: | + MAXRETRY=600 + RETRY=0 + while [ $RETRY -lt $MAXRETRY ] + do + if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + echo "Klaytn RPC server is up" + break + else + echo "wait for Klaytn RPC server..." + sleep 5 + fi + RETRY=$(($RETRY+5)) + done + if [ $RETRY -eq $MAXRETRY ]; then + echo "failed to connect Klaytn RPC server" + exit 1 + fi + - name: Check environment + run: java --version && gradle --version + - name: Test + run: ./gradlew clean test --debug --scan + + build_test: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Check rc version + run: | + if [ -z "$CIRCLE_TAG" ]; then + echo "this is not RC version" + else + sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle + awk '/version '\''/' build.gradle + fi + - name: build_test + run: | + ./gradlew clean + ./gradlew build --debug -x test + + unit_test_android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: include_android_instrumented_test_as_subproject + run: | + sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle + - name: setup_android_test_files + run: | + bash .circleci/setup_android_instrumented_test-gha.sh + - name: pull_klaytn_image + run: | + docker pull klaytn/build_base:latest + docker image tag klaytn/build_base:latest klaytn + - name: start_test_network + run: | + docker compose up -d + working-directory: ./.circleci/images + - name: check_test_network + run: | + MAXRETRY=600 + RETRY=0 + while [ $RETRY -lt $MAXRETRY ] + do + if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + echo "Klaytn RPC server is up" + break + else + echo "wait for Klaytn RPC server..." + sleep 5 + fi + RETRY=$(($RETRY+5)) + done + if [ $RETRY -eq $MAXRETRY ]; then + echo "failed to connect Klaytn RPC server" + exit 1 + fi + - name: check_android_version + run: | + version=$(.circleci/version.sh) + sed -i "s/version '.*'/version '${version}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + if [ -z "$CIRCLE_TAG" ]; then + echo "this is not RC version" + else + echo "trigger CIRCLE_TAG $CIRCLE_TAG" + sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + fi + + awk '/version '\''/' build.gradle + awk '/ext.web3jVersion = '\''/' build.gradle + + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + script: ./gradlew connectedDebugAndroidTest --debug --stacktrace + - name: Upload test results + if: always() + uses: actions/upload-artifact@v4 + with: + name: test-results + path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest build_test_android: From 5982440fb0e1b6ef5aee29c1d31e02e5f5debc4f Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:20:39 +0700 Subject: [PATCH 22/55] add check_tag step --- .github/workflows/build.yaml | 274 ++++++++++++++++++----------------- 1 file changed, 141 insertions(+), 133 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 562ed813..a7775dcb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,142 +17,150 @@ on: - main jobs: - docs_test: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Docs Test - run: ./gradlew javadoc - - - - unit_test: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: pull_klaytn_image - run: | - docker pull klaytn/build_base:latest - docker image tag klaytn/build_base:latest klaytn - - name: start_test_network - run: | - docker compose up -d - working-directory: ./.circleci/images - - name: check_test_network - run: | - MAXRETRY=600 - RETRY=0 - while [ $RETRY -lt $MAXRETRY ] - do - if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - echo "Klaytn RPC server is up" - break - else - echo "wait for Klaytn RPC server..." - sleep 5 - fi - RETRY=$(($RETRY+5)) - done - if [ $RETRY -eq $MAXRETRY ]; then - echo "failed to connect Klaytn RPC server" - exit 1 - fi - - name: Check environment - run: java --version && gradle --version - - name: Test - run: ./gradlew clean test --debug --scan - build_test: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Check rc version - run: | - if [ -z "$CIRCLE_TAG" ]; then - echo "this is not RC version" - else - sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle - awk '/version '\''/' build.gradle - fi - - name: build_test - run: | - ./gradlew clean - ./gradlew build --debug -x test - - unit_test_android: + check_tag: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: include_android_instrumented_test_as_subproject - run: | - sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle - - name: setup_android_test_files - run: | - bash .circleci/setup_android_instrumented_test-gha.sh - - name: pull_klaytn_image - run: | - docker pull klaytn/build_base:latest - docker image tag klaytn/build_base:latest klaytn - - name: start_test_network - run: | - docker compose up -d - working-directory: ./.circleci/images - - name: check_test_network - run: | - MAXRETRY=600 - RETRY=0 - while [ $RETRY -lt $MAXRETRY ] - do - if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - echo "Klaytn RPC server is up" - break - else - echo "wait for Klaytn RPC server..." - sleep 5 - fi - RETRY=$(($RETRY+5)) - done - if [ $RETRY -eq $MAXRETRY ]; then - echo "failed to connect Klaytn RPC server" - exit 1 - fi - - name: check_android_version - run: | - version=$(.circleci/version.sh) - sed -i "s/version '.*'/version '${version}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - - if [ -z "$CIRCLE_TAG" ]; then - echo "this is not RC version" - else - echo "trigger CIRCLE_TAG $CIRCLE_TAG" - sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - fi - - awk '/version '\''/' build.gradle - awk '/ext.web3jVersion = '\''/' build.gradle - - - name: Enable KVM - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - - name: run tests - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: 29 - script: ./gradlew connectedDebugAndroidTest --debug --stacktrace - - name: Upload test results - if: always() - uses: actions/upload-artifact@v4 - with: - name: test-results - path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest - - - build_test_android: + - name: Check tag version + run: | + echo "tag version is " ${{ github.ref }} + file_version=v$(.circleci/version.sh) + echo "file version is " $file_version + + + # docs_test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Docs Test + # run: ./gradlew javadoc + + # unit_test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: pull_klaytn_image + # run: | + # docker pull klaytn/build_base:latest + # docker image tag klaytn/build_base:latest klaytn + # - name: start_test_network + # run: | + # docker compose up -d + # working-directory: ./.circleci/images + # - name: check_test_network + # run: | + # MAXRETRY=600 + # RETRY=0 + # while [ $RETRY -lt $MAXRETRY ] + # do + # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + # echo "Klaytn RPC server is up" + # break + # else + # echo "wait for Klaytn RPC server..." + # sleep 5 + # fi + # RETRY=$(($RETRY+5)) + # done + # if [ $RETRY -eq $MAXRETRY ]; then + # echo "failed to connect Klaytn RPC server" + # exit 1 + # fi + # - name: Check environment + # run: java --version && gradle --version + # - name: Test + # run: ./gradlew clean test --debug --scan + + # build_test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Check rc version + # run: | + # if [ -z "$CIRCLE_TAG" ]; then + # echo "this is not RC version" + # else + # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle + # awk '/version '\''/' build.gradle + # fi + # - name: build_test + # run: | + # ./gradlew clean + # ./gradlew build --debug -x test + + # unit_test_android: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: include_android_instrumented_test_as_subproject + # run: | + # sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle + # - name: setup_android_test_files + # run: | + # bash .circleci/setup_android_instrumented_test-gha.sh + # - name: pull_klaytn_image + # run: | + # docker pull klaytn/build_base:latest + # docker image tag klaytn/build_base:latest klaytn + # - name: start_test_network + # run: | + # docker compose up -d + # working-directory: ./.circleci/images + # - name: check_test_network + # run: | + # MAXRETRY=600 + # RETRY=0 + # while [ $RETRY -lt $MAXRETRY ] + # do + # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + # echo "Klaytn RPC server is up" + # break + # else + # echo "wait for Klaytn RPC server..." + # sleep 5 + # fi + # RETRY=$(($RETRY+5)) + # done + # if [ $RETRY -eq $MAXRETRY ]; then + # echo "failed to connect Klaytn RPC server" + # exit 1 + # fi + # - name: check_android_version + # run: | + # version=$(.circleci/version.sh) + # sed -i "s/version '.*'/version '${version}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + # if [ -z "$CIRCLE_TAG" ]; then + # echo "this is not RC version" + # else + # echo "trigger CIRCLE_TAG $CIRCLE_TAG" + # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + # fi + + # awk '/version '\''/' build.gradle + # awk '/ext.web3jVersion = '\''/' build.gradle + + # - name: Enable KVM + # run: | + # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + # sudo udevadm control --reload-rules + # sudo udevadm trigger --name-match=kvm + + # - name: run tests + # uses: reactivecircus/android-emulator-runner@v2 + # with: + # api-level: 29 + # script: ./gradlew connectedDebugAndroidTest --debug --stacktrace + # - name: Upload test results + # if: always() + # uses: actions/upload-artifact@v4 + # with: + # name: test-results + # path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest + + # build_test_android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 6f9b4536b62a0540a8e237e8c90cafd75ab04a78 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:21:43 +0700 Subject: [PATCH 23/55] disable other steps --- .github/workflows/build.yaml | 48 ++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a7775dcb..bbcfbbdc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -161,27 +161,27 @@ jobs: # path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest # build_test_android: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: check_android_version - run: | - version=$(.circleci/version.sh) - sed -i "s/version '.*'/version '${version}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - - if [ -z "$CIRCLE_TAG" ]; then - echo "this is not RC version" - else - echo "trigger CIRCLE_TAG $CIRCLE_TAG" - sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - fi - - awk '/version '\''/' build.gradle - awk '/ext.web3jVersion = '\''/' build.gradle - - - name: build_test - run: | - ./gradlew clean - ./gradlew build --debug -x test \ No newline at end of file + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: check_android_version + # run: | + # version=$(.circleci/version.sh) + # sed -i "s/version '.*'/version '${version}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + # if [ -z "$CIRCLE_TAG" ]; then + # echo "this is not RC version" + # else + # echo "trigger CIRCLE_TAG $CIRCLE_TAG" + # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + # fi + + # awk '/version '\''/' build.gradle + # awk '/ext.web3jVersion = '\''/' build.gradle + + # - name: build_test + # run: | + # ./gradlew clean + # ./gradlew build --debug -x test \ No newline at end of file From 6da5514c15edd8287554de3b4465d61ff3ca64fc Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:23:44 +0700 Subject: [PATCH 24/55] chore: test check_tag --- .github/workflows/build.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bbcfbbdc..cea9314f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,6 +24,8 @@ jobs: - name: Check tag version run: | echo "tag version is " ${{ github.ref }} + ls -lah + sh .circleci/version.sh file_version=v$(.circleci/version.sh) echo "file version is " $file_version From 693239151b591a53141ed1966461059245ad613e Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:25:04 +0700 Subject: [PATCH 25/55] add checkout step --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index cea9314f..84b501a0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -21,6 +21,7 @@ jobs: check_tag: runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 - name: Check tag version run: | echo "tag version is " ${{ github.ref }} From 1ab8a14c19705336bb1e2c99c6df5f640ca2b715 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:27:26 +0700 Subject: [PATCH 26/55] chore : edit check_tag --- .github/workflows/build.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 84b501a0..b895787f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,9 +24,7 @@ jobs: - uses: actions/checkout@v4 - name: Check tag version run: | - echo "tag version is " ${{ github.ref }} - ls -lah - sh .circleci/version.sh + echo "tag version is " ${GITHUB_REF#refs/tags/}" file_version=v$(.circleci/version.sh) echo "file version is " $file_version From acd18db6cf03d83d384e1613171b01ee30582d42 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:28:26 +0700 Subject: [PATCH 27/55] chore : edit check_tag --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b895787f..ac6424c0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v4 - name: Check tag version run: | - echo "tag version is " ${GITHUB_REF#refs/tags/}" + echo "tag version is " ${GITHUB_REF#refs/tags/} file_version=v$(.circleci/version.sh) echo "file version is " $file_version From e178863c6ca2066d88477f532f4d5798feb20571 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:30:51 +0700 Subject: [PATCH 28/55] update tag --- .github/workflows/build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ac6424c0..43fca3d1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -9,8 +9,8 @@ on: branches: # - main - feat/gha-cicd - # tags: - # - 'v*' + tags: + - 'v*' pull_request: branches: @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v4 - name: Check tag version run: | - echo "tag version is " ${GITHUB_REF#refs/tags/} + echo "tag version is " ${{ github.ref }}, file_version=v$(.circleci/version.sh) echo "file version is " $file_version From 7f1322419f46c0ba6c1b40757784498dc3fe852a Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:37:33 +0700 Subject: [PATCH 29/55] edit trigger to tags --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 43fca3d1..70675500 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -8,7 +8,7 @@ on: push: branches: # - main - - feat/gha-cicd + # - feat/gha-cicd tags: - 'v*' From ed85f948ef60ed3aa706f7dd050e6740253a82e4 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:42:05 +0700 Subject: [PATCH 30/55] Edit check_tag job --- .github/workflows/build.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 70675500..7349462d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,10 +24,16 @@ jobs: - uses: actions/checkout@v4 - name: Check tag version run: | - echo "tag version is " ${{ github.ref }}, + TAG_NAME="${${{ github.ref }}#refs/tags/}" + echo "tag version is " $TAG_NAME file_version=v$(.circleci/version.sh) echo "file version is " $file_version - + if [ $file_version == ${CIRCLE_TAG%-*} ]; then + echo "verification pass" + else + echo "It's not same version." + exit 1 + fi # docs_test: # runs-on: ubuntu-latest From 097259bd9e5f1555a867a166e1a34ddf7f390691 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:44:15 +0700 Subject: [PATCH 31/55] edit check_tag --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7349462d..e4d2b263 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,7 +24,8 @@ jobs: - uses: actions/checkout@v4 - name: Check tag version run: | - TAG_NAME="${${{ github.ref }}#refs/tags/}" + TAG=${{ github.ref }} + TAG_NAME="${TAG#refs/tags/}" echo "tag version is " $TAG_NAME file_version=v$(.circleci/version.sh) echo "file version is " $file_version From c5a43a307eb53cee105ccd0176bb6d73fec176a6 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Tue, 18 Mar 2025 14:49:16 +0700 Subject: [PATCH 32/55] add tagger verify step --- .github/workflows/build.yaml | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e4d2b263..08574890 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,20 +22,28 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Check tag version + # - name: Verify tag and file verison match + # run: | + # TAG=${{ github.ref }} + # TAG_NAME="${TAG#refs/tags/}" + # echo "tag version is " $TAG_NAME + # file_version=v$(.circleci/version.sh) + # echo "file version is " $file_version + # if [ $file_version == ${TAG_NAME%-*} ]; then + # echo "verification pass" + # else + # echo "It's not same version." + # exit 1 + # fi + - name: Verify tag and file verison match run: | - TAG=${{ github.ref }} - TAG_NAME="${TAG#refs/tags/}" - echo "tag version is " $TAG_NAME - file_version=v$(.circleci/version.sh) - echo "file version is " $file_version - if [ $file_version == ${CIRCLE_TAG%-*} ]; then - echo "verification pass" + TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$CIRCLE_TAG | sed 's/ .*//') + if [ $TAGGER == 'circleci-klaytn' ]; then + echo "Pass! Tagger is circleci-klaytn" else - echo "It's not same version." + echo "only circleci-klaytn can tagging major version" exit 1 fi - # docs_test: # runs-on: ubuntu-latest # steps: From 7cb70ccb82bba981b1c6e17ac1893c5fe65bae10 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 16 Apr 2025 14:39:53 +0700 Subject: [PATCH 33/55] add tag and tagger verify --- .github/workflows/build.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 08574890..342d0146 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,20 +22,20 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - # - name: Verify tag and file verison match - # run: | - # TAG=${{ github.ref }} - # TAG_NAME="${TAG#refs/tags/}" - # echo "tag version is " $TAG_NAME - # file_version=v$(.circleci/version.sh) - # echo "file version is " $file_version - # if [ $file_version == ${TAG_NAME%-*} ]; then - # echo "verification pass" - # else - # echo "It's not same version." - # exit 1 - # fi - - name: Verify tag and file verison match + - name: tag_verify + run: | + TAG=${{ github.ref }} + TAG_NAME="${TAG#refs/tags/}" + echo "tag version is " $TAG_NAME + file_version=v$(.circleci/version.sh) + echo "file version is " $file_version + if [ $file_version == ${TAG_NAME%-*} ]; then + echo "verification pass" + else + echo "It's not same version." + exit 1 + fi + - name: tagger_verify run: | TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$CIRCLE_TAG | sed 's/ .*//') if [ $TAGGER == 'circleci-klaytn' ]; then From d165e688e7d52008bb1b5feb9491a49193ac6c1b Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 16 Apr 2025 14:41:06 +0700 Subject: [PATCH 34/55] disable tag_verify --- .github/workflows/build.yaml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 342d0146..b45ef617 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,19 +22,19 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: tag_verify - run: | - TAG=${{ github.ref }} - TAG_NAME="${TAG#refs/tags/}" - echo "tag version is " $TAG_NAME - file_version=v$(.circleci/version.sh) - echo "file version is " $file_version - if [ $file_version == ${TAG_NAME%-*} ]; then - echo "verification pass" - else - echo "It's not same version." - exit 1 - fi + # - name: tag_verify + # run: | + # TAG=${{ github.ref }} + # TAG_NAME="${TAG#refs/tags/}" + # echo "tag version is " $TAG_NAME + # file_version=v$(.circleci/version.sh) + # echo "file version is " $file_version + # if [ $file_version == ${TAG_NAME%-*} ]; then + # echo "verification pass" + # else + # echo "It's not same version." + # exit 1 + # fi - name: tagger_verify run: | TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$CIRCLE_TAG | sed 's/ .*//') From 1da9b5b95a8851611dfbf4656821569a11a60cb2 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 16 Apr 2025 14:42:09 +0700 Subject: [PATCH 35/55] add echo result step to debug --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b45ef617..056fa459 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -38,6 +38,7 @@ jobs: - name: tagger_verify run: | TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$CIRCLE_TAG | sed 's/ .*//') + echo $TAGGER if [ $TAGGER == 'circleci-klaytn' ]; then echo "Pass! Tagger is circleci-klaytn" else From dabebbcc6185102e162a6ed81a19c313e9ee8612 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 16 Apr 2025 14:44:25 +0700 Subject: [PATCH 36/55] tagger_verify debug --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 056fa459..d59a25bf 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -37,7 +37,8 @@ jobs: # fi - name: tagger_verify run: | - TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$CIRCLE_TAG | sed 's/ .*//') + TAG_NAME="${TAG#refs/tags/}" + TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$TAG_NAME | sed 's/ .*//') echo $TAGGER if [ $TAGGER == 'circleci-klaytn' ]; then echo "Pass! Tagger is circleci-klaytn" From a7510cfd57ad01b6db2f0a03055bcad27571059e Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Wed, 16 Apr 2025 14:46:16 +0700 Subject: [PATCH 37/55] tagger_verify : debu --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d59a25bf..32086661 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -37,6 +37,7 @@ jobs: # fi - name: tagger_verify run: | + TAG=${{ github.ref }} TAG_NAME="${TAG#refs/tags/}" TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$TAG_NAME | sed 's/ .*//') echo $TAGGER From f01ae7f9f9be87d0e6acf7bbfbf17d452fff37f6 Mon Sep 17 00:00:00 2001 From: circleci-klaytn Date: Wed, 16 Apr 2025 14:53:40 +0700 Subject: [PATCH 38/55] tagger_verify: debug --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 32086661..61881b6c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -41,7 +41,7 @@ jobs: TAG_NAME="${TAG#refs/tags/}" TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$TAG_NAME | sed 's/ .*//') echo $TAGGER - if [ $TAGGER == 'circleci-klaytn' ]; then + if [[ $TAGGER == 'circleci-klaytn' ]]; then echo "Pass! Tagger is circleci-klaytn" else echo "only circleci-klaytn can tagging major version" From 70ccbd702f9858355e7c0627acad05f144cb8247 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 25 Apr 2025 17:05:10 +0700 Subject: [PATCH 39/55] enable all steps --- .github/workflows/build.yaml | 340 +++++++++++++++++------------------ 1 file changed, 170 insertions(+), 170 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 61881b6c..f8a566d8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,19 +22,19 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - # - name: tag_verify - # run: | - # TAG=${{ github.ref }} - # TAG_NAME="${TAG#refs/tags/}" - # echo "tag version is " $TAG_NAME - # file_version=v$(.circleci/version.sh) - # echo "file version is " $file_version - # if [ $file_version == ${TAG_NAME%-*} ]; then - # echo "verification pass" - # else - # echo "It's not same version." - # exit 1 - # fi + - name: tag_verify + run: | + TAG=${{ github.ref }} + TAG_NAME="${TAG#refs/tags/}" + echo "tag version is " $TAG_NAME + file_version=v$(.circleci/version.sh) + echo "file version is " $file_version + if [ $file_version == ${TAG_NAME%-*} ]; then + echo "verification pass" + else + echo "It's not same version." + exit 1 + fi - name: tagger_verify run: | TAG=${{ github.ref }} @@ -47,160 +47,160 @@ jobs: echo "only circleci-klaytn can tagging major version" exit 1 fi - # docs_test: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: Docs Test - # run: ./gradlew javadoc - - # unit_test: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: pull_klaytn_image - # run: | - # docker pull klaytn/build_base:latest - # docker image tag klaytn/build_base:latest klaytn - # - name: start_test_network - # run: | - # docker compose up -d - # working-directory: ./.circleci/images - # - name: check_test_network - # run: | - # MAXRETRY=600 - # RETRY=0 - # while [ $RETRY -lt $MAXRETRY ] - # do - # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - # echo "Klaytn RPC server is up" - # break - # else - # echo "wait for Klaytn RPC server..." - # sleep 5 - # fi - # RETRY=$(($RETRY+5)) - # done - # if [ $RETRY -eq $MAXRETRY ]; then - # echo "failed to connect Klaytn RPC server" - # exit 1 - # fi - # - name: Check environment - # run: java --version && gradle --version - # - name: Test - # run: ./gradlew clean test --debug --scan - - # build_test: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: Check rc version - # run: | - # if [ -z "$CIRCLE_TAG" ]; then - # echo "this is not RC version" - # else - # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle - # awk '/version '\''/' build.gradle - # fi - # - name: build_test - # run: | - # ./gradlew clean - # ./gradlew build --debug -x test - - # unit_test_android: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: include_android_instrumented_test_as_subproject - # run: | - # sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle - # - name: setup_android_test_files - # run: | - # bash .circleci/setup_android_instrumented_test-gha.sh - # - name: pull_klaytn_image - # run: | - # docker pull klaytn/build_base:latest - # docker image tag klaytn/build_base:latest klaytn - # - name: start_test_network - # run: | - # docker compose up -d - # working-directory: ./.circleci/images - # - name: check_test_network - # run: | - # MAXRETRY=600 - # RETRY=0 - # while [ $RETRY -lt $MAXRETRY ] - # do - # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - # echo "Klaytn RPC server is up" - # break - # else - # echo "wait for Klaytn RPC server..." - # sleep 5 - # fi - # RETRY=$(($RETRY+5)) - # done - # if [ $RETRY -eq $MAXRETRY ]; then - # echo "failed to connect Klaytn RPC server" - # exit 1 - # fi - # - name: check_android_version - # run: | - # version=$(.circleci/version.sh) - # sed -i "s/version '.*'/version '${version}-android'/" build.gradle - # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - - # if [ -z "$CIRCLE_TAG" ]; then - # echo "this is not RC version" - # else - # echo "trigger CIRCLE_TAG $CIRCLE_TAG" - # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle - # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - # fi - - # awk '/version '\''/' build.gradle - # awk '/ext.web3jVersion = '\''/' build.gradle - - # - name: Enable KVM - # run: | - # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - # sudo udevadm control --reload-rules - # sudo udevadm trigger --name-match=kvm - - # - name: run tests - # uses: reactivecircus/android-emulator-runner@v2 - # with: - # api-level: 29 - # script: ./gradlew connectedDebugAndroidTest --debug --stacktrace - # - name: Upload test results - # if: always() - # uses: actions/upload-artifact@v4 - # with: - # name: test-results - # path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest - - # build_test_android: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: check_android_version - # run: | - # version=$(.circleci/version.sh) - # sed -i "s/version '.*'/version '${version}-android'/" build.gradle - # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - - # if [ -z "$CIRCLE_TAG" ]; then - # echo "this is not RC version" - # else - # echo "trigger CIRCLE_TAG $CIRCLE_TAG" - # sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle - # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - # fi - - # awk '/version '\''/' build.gradle - # awk '/ext.web3jVersion = '\''/' build.gradle - - # - name: build_test - # run: | - # ./gradlew clean - # ./gradlew build --debug -x test \ No newline at end of file + docs_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Docs Test + run: ./gradlew javadoc + + unit_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: pull_klaytn_image + run: | + docker pull klaytn/build_base:latest + docker image tag klaytn/build_base:latest klaytn + - name: start_test_network + run: | + docker compose up -d + working-directory: ./.circleci/images + - name: check_test_network + run: | + MAXRETRY=600 + RETRY=0 + while [ $RETRY -lt $MAXRETRY ] + do + if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + echo "Klaytn RPC server is up" + break + else + echo "wait for Klaytn RPC server..." + sleep 5 + fi + RETRY=$(($RETRY+5)) + done + if [ $RETRY -eq $MAXRETRY ]; then + echo "failed to connect Klaytn RPC server" + exit 1 + fi + - name: Check environment + run: java --version && gradle --version + - name: Test + run: ./gradlew clean test --debug --scan + + build_test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check rc version + run: | + if [ -z "$CIRCLE_TAG" ]; then + echo "this is not RC version" + else + sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle + awk '/version '\''/' build.gradle + fi + - name: build_test + run: | + ./gradlew clean + ./gradlew build --debug -x test + + unit_test_android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: include_android_instrumented_test_as_subproject + run: | + sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle + - name: setup_android_test_files + run: | + bash .circleci/setup_android_instrumented_test-gha.sh + - name: pull_klaytn_image + run: | + docker pull klaytn/build_base:latest + docker image tag klaytn/build_base:latest klaytn + - name: start_test_network + run: | + docker compose up -d + working-directory: ./.circleci/images + - name: check_test_network + run: | + MAXRETRY=600 + RETRY=0 + while [ $RETRY -lt $MAXRETRY ] + do + if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + echo "Klaytn RPC server is up" + break + else + echo "wait for Klaytn RPC server..." + sleep 5 + fi + RETRY=$(($RETRY+5)) + done + if [ $RETRY -eq $MAXRETRY ]; then + echo "failed to connect Klaytn RPC server" + exit 1 + fi + - name: check_android_version + run: | + version=$(.circleci/version.sh) + sed -i "s/version '.*'/version '${version}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + if [ -z "$CIRCLE_TAG" ]; then + echo "this is not RC version" + else + echo "trigger CIRCLE_TAG $CIRCLE_TAG" + sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + fi + + awk '/version '\''/' build.gradle + awk '/ext.web3jVersion = '\''/' build.gradle + + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + script: ./gradlew connectedDebugAndroidTest --debug --stacktrace + - name: Upload test results + if: always() + uses: actions/upload-artifact@v4 + with: + name: test-results + path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest + + build_test_android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: check_android_version + run: | + version=$(.circleci/version.sh) + sed -i "s/version '.*'/version '${version}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + if [ -z "$CIRCLE_TAG" ]; then + echo "this is not RC version" + else + echo "trigger CIRCLE_TAG $CIRCLE_TAG" + sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle + sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + fi + + awk '/version '\''/' build.gradle + awk '/ext.web3jVersion = '\''/' build.gradle + + - name: build_test + run: | + ./gradlew clean + ./gradlew build --debug -x test \ No newline at end of file From 48f42f2f48713505537ca3b3de80d5d8c73ba25b Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 25 Apr 2025 17:10:12 +0700 Subject: [PATCH 40/55] edit name of tagger verify steps --- .github/workflows/build.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f8a566d8..378a0e2a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -18,7 +18,7 @@ on: jobs: - check_tag: + tag_verify: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -35,6 +35,11 @@ jobs: echo "It's not same version." exit 1 fi + + tagger_verify: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 - name: tagger_verify run: | TAG=${{ github.ref }} @@ -47,6 +52,7 @@ jobs: echo "only circleci-klaytn can tagging major version" exit 1 fi + docs_test: runs-on: ubuntu-latest steps: From 3920f22984ef0041743eeadfa2370ab26fc58834 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Sat, 26 Apr 2025 14:21:10 +0700 Subject: [PATCH 41/55] add release_PR --- .github/workflows/build.yaml | 403 +++++++++++++++++++---------------- 1 file changed, 218 insertions(+), 185 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 378a0e2a..a48debdf 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -16,197 +16,230 @@ on: branches: - main -jobs: - - tag_verify: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: tag_verify - run: | - TAG=${{ github.ref }} - TAG_NAME="${TAG#refs/tags/}" - echo "tag version is " $TAG_NAME - file_version=v$(.circleci/version.sh) - echo "file version is " $file_version - if [ $file_version == ${TAG_NAME%-*} ]; then - echo "verification pass" - else - echo "It's not same version." - exit 1 - fi - - tagger_verify: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: tagger_verify - run: | - TAG=${{ github.ref }} - TAG_NAME="${TAG#refs/tags/}" - TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$TAG_NAME | sed 's/ .*//') - echo $TAGGER - if [[ $TAGGER == 'circleci-klaytn' ]]; then - echo "Pass! Tagger is circleci-klaytn" - else - echo "only circleci-klaytn can tagging major version" - exit 1 - fi - - docs_test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Docs Test - run: ./gradlew javadoc +env: + TAG: ${{ github.ref }} + TAG_NAME: ${TAG#refs/tags/} - unit_test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: pull_klaytn_image - run: | - docker pull klaytn/build_base:latest - docker image tag klaytn/build_base:latest klaytn - - name: start_test_network - run: | - docker compose up -d - working-directory: ./.circleci/images - - name: check_test_network - run: | - MAXRETRY=600 - RETRY=0 - while [ $RETRY -lt $MAXRETRY ] - do - if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - echo "Klaytn RPC server is up" - break - else - echo "wait for Klaytn RPC server..." - sleep 5 - fi - RETRY=$(($RETRY+5)) - done - if [ $RETRY -eq $MAXRETRY ]; then - echo "failed to connect Klaytn RPC server" - exit 1 - fi - - name: Check environment - run: java --version && gradle --version - - name: Test - run: ./gradlew clean test --debug --scan - - build_test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Check rc version - run: | - if [ -z "$CIRCLE_TAG" ]; then - echo "this is not RC version" - else - sed -i "s/version '.*'/version '${CIRCLE_TAG:1}'/" build.gradle - awk '/version '\''/' build.gradle - fi - - name: build_test - run: | - ./gradlew clean - ./gradlew build --debug -x test +jobs: - unit_test_android: + # tag_verify: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: tag_verify + # run: | + # TAG=${{ github.ref }} + # TAG_NAME="${TAG#refs/tags/}" + # echo "tag version is " $TAG_NAME + # file_version=v$(.circleci/version.sh) + # echo "file version is " $file_version + # if [ $file_version == ${TAG_NAME%-*} ]; then + # echo "verification pass" + # else + # echo "It's not same version." + # exit 1 + # fi + + # tagger_verify: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: tagger_verify + # run: | + # TAG=${{ github.ref }} + # TAG_NAME="${TAG#refs/tags/}" + # TAGGER=$(git for-each-ref --format='%(tagger)' refs/tags/$TAG_NAME | sed 's/ .*//') + # echo $TAGGER + # if [[ $TAGGER == 'circleci-klaytn' ]]; then + # echo "Pass! Tagger is circleci-klaytn" + # else + # echo "only circleci-klaytn can tagging major version" + # exit 1 + # fi + + # docs_test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Docs Test + # run: ./gradlew javadoc + + # unit_test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: pull_klaytn_image + # run: | + # docker pull klaytn/build_base:latest + # docker image tag klaytn/build_base:latest klaytn + # - name: start_test_network + # run: | + # docker compose up -d + # working-directory: ./.circleci/images + # - name: check_test_network + # run: | + # MAXRETRY=600 + # RETRY=0 + # while [ $RETRY -lt $MAXRETRY ] + # do + # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + # echo "Klaytn RPC server is up" + # break + # else + # echo "wait for Klaytn RPC server..." + # sleep 5 + # fi + # RETRY=$(($RETRY+5)) + # done + # if [ $RETRY -eq $MAXRETRY ]; then + # echo "failed to connect Klaytn RPC server" + # exit 1 + # fi + # - name: Check environment + # run: java --version && gradle --version + # - name: Test + # run: ./gradlew clean test --debug --scan + + # build_test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: Check rc version + # run: | + # if [ -z "$TAG_NAME" ]; then + # echo "this is not RC version" + # else + # sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle + # awk '/version '\''/' build.gradle + # fi + # - name: build_test + # run: | + # ./gradlew clean + # ./gradlew build --debug -x test + + # unit_test_android: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: include_android_instrumented_test_as_subproject + # run: | + # sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle + # - name: setup_android_test_files + # run: | + # bash .circleci/setup_android_instrumented_test-gha.sh + # - name: pull_klaytn_image + # run: | + # docker pull klaytn/build_base:latest + # docker image tag klaytn/build_base:latest klaytn + # - name: start_test_network + # run: | + # docker compose up -d + # working-directory: ./.circleci/images + # - name: check_test_network + # run: | + # MAXRETRY=600 + # RETRY=0 + # while [ $RETRY -lt $MAXRETRY ] + # do + # if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then + # echo "Klaytn RPC server is up" + # break + # else + # echo "wait for Klaytn RPC server..." + # sleep 5 + # fi + # RETRY=$(($RETRY+5)) + # done + # if [ $RETRY -eq $MAXRETRY ]; then + # echo "failed to connect Klaytn RPC server" + # exit 1 + # fi + # - name: check_android_version + # run: | + # version=$(.circleci/version.sh) + # sed -i "s/version '.*'/version '${version}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + # if [ -z "$TAG_NAME" ]; then + # echo "this is not RC version" + # else + # echo "trigger TAG_NAME $TAG_NAME" + # sed -i "s/version '.*'/version '${TAG_NAME:1}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + # fi + + # awk '/version '\''/' build.gradle + # awk '/ext.web3jVersion = '\''/' build.gradle + + # - name: Enable KVM + # run: | + # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + # sudo udevadm control --reload-rules + # sudo udevadm trigger --name-match=kvm + + # - name: run tests + # uses: reactivecircus/android-emulator-runner@v2 + # with: + # api-level: 29 + # script: ./gradlew connectedDebugAndroidTest --debug --stacktrace + # - name: Upload test results + # if: always() + # uses: actions/upload-artifact@v4 + # with: + # name: test-results + # path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest + + # build_test_android: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: check_android_version + # run: | + # version=$(.circleci/version.sh) + # sed -i "s/version '.*'/version '${version}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + + # if [ -z "$TAG_NAME" ]; then + # echo "this is not RC version" + # else + # echo "trigger TAG_NAME $TAG_NAME" + # sed -i "s/version '.*'/version '${TAG_NAME:1}-android'/" build.gradle + # sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java + # fi + + # awk '/version '\''/' build.gradle + # awk '/ext.web3jVersion = '\''/' build.gradle + + # - name: build_test + # run: | + # ./gradlew clean + # ./gradlew build --debug -x test + + + release_PR: + permissions: + contents: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: include_android_instrumented_test_as_subproject - run: | - sed -i -e '$ainclude '\''android_instrumented_test'\''' settings.gradle - - name: setup_android_test_files + - name: Push release branch run: | - bash .circleci/setup_android_instrumented_test-gha.sh - - name: pull_klaytn_image + echo "push to release branch: /release/${TAG_NAME%-*}" + git checkout -b release/${TAG_NAME%-*} + git push origin release/${TAG_NAME%-*} + - name: Install hub run: | - docker pull klaytn/build_base:latest - docker image tag klaytn/build_base:latest klaytn - - name: start_test_network - run: | - docker compose up -d - working-directory: ./.circleci/images - - name: check_test_network + curl -sSLf https://github.com/github/hub/releases/download/v2.12.3/hub-linux-amd64-2.12.3.tgz | \ + tar zxf - --strip-components=1 -C /tmp && \ + sudo mv /tmp/bin/hub /usr/local/bin/hub + type hub + - name: Create pull request run: | - MAXRETRY=600 - RETRY=0 - while [ $RETRY -lt $MAXRETRY ] - do - if curl --fail -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://localhost:8551 2>/dev/null; then - echo "Klaytn RPC server is up" - break - else - echo "wait for Klaytn RPC server..." - sleep 5 - fi - RETRY=$(($RETRY+5)) - done - if [ $RETRY -eq $MAXRETRY ]; then - echo "failed to connect Klaytn RPC server" - exit 1 - fi - - name: check_android_version - run: | - version=$(.circleci/version.sh) - sed -i "s/version '.*'/version '${version}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - - if [ -z "$CIRCLE_TAG" ]; then - echo "this is not RC version" + version=$(hub pr list -s open -L 10 -f "%H%n") + echo $version + if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then + echo "PR already exist" else - echo "trigger CIRCLE_TAG $CIRCLE_TAG" - sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - fi - - awk '/version '\''/' build.gradle - awk '/ext.web3jVersion = '\''/' build.gradle - - - name: Enable KVM - run: | - echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules - sudo udevadm control --reload-rules - sudo udevadm trigger --name-match=kvm - - - name: run tests - uses: reactivecircus/android-emulator-runner@v2 - with: - api-level: 29 - script: ./gradlew connectedDebugAndroidTest --debug --stacktrace - - name: Upload test results - if: always() - uses: actions/upload-artifact@v4 - with: - name: test-results - path: android_instrumented_test/build/reports/androidTests/connected/flavors/debugAndroidTest - - build_test_android: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: check_android_version - run: | - version=$(.circleci/version.sh) - sed -i "s/version '.*'/version '${version}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - - if [ -z "$CIRCLE_TAG" ]; then - echo "this is not RC version" - else - echo "trigger CIRCLE_TAG $CIRCLE_TAG" - sed -i "s/version '.*'/version '${CIRCLE_TAG:1}-android'/" build.gradle - sed -i "s/java.util.concurrent.CompletableFuture/java8.util.concurrent.CompletableFuture/" core/src/test/java/com/klaytn/caver/legacy/scenario/FastTransactionManagerIT.java - fi - - awk '/version '\''/' build.gradle - awk '/ext.web3jVersion = '\''/' build.gradle - - - name: build_test - run: | - ./gradlew clean - ./gradlew build --debug -x test \ No newline at end of file + echo "hub pull-request -m "[Main] release/$TAG_NAME QA Signoff" -b $CIRCLE_PROJECT_USERNAME:main -h $CIRCLE_PROJECT_USERNAME:${TAG_NAME%-*}" + echo -e "[Main] release/${TAG_NAME%-*} QA Sign-off\n\nThis PR is automatically created by CI to release a new official version of $CIRCLE_PROJECT_REPONAME.\n\nWhen this PR is approved by QA team, a new version will be released." | hub pull-request -b $CIRCLE_PROJECT_USERNAME:main -h $CIRCLE_PROJECT_USERNAME:release/${TAG_NAME%-*} -r $GITHUB_reviewer -l circleci -F- + fi \ No newline at end of file From 54261b6c7f8ae8bea43901e22b0091f125201537 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 09:39:47 +0700 Subject: [PATCH 42/55] update publish --- .github/workflows/build.yaml | 54 +++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a48debdf..4ea01abc 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -242,4 +242,56 @@ jobs: else echo "hub pull-request -m "[Main] release/$TAG_NAME QA Signoff" -b $CIRCLE_PROJECT_USERNAME:main -h $CIRCLE_PROJECT_USERNAME:${TAG_NAME%-*}" echo -e "[Main] release/${TAG_NAME%-*} QA Sign-off\n\nThis PR is automatically created by CI to release a new official version of $CIRCLE_PROJECT_REPONAME.\n\nWhen this PR is approved by QA team, a new version will be released." | hub pull-request -b $CIRCLE_PROJECT_USERNAME:main -h $CIRCLE_PROJECT_USERNAME:release/${TAG_NAME%-*} -r $GITHUB_reviewer -l circleci -F- - fi \ No newline at end of file + fi + + major_publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: check RC version + run: | + if [ -z "$TAG_NAME" ]; then + echo "this is not RC version" + else + sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle + awk '/version '\''/' build.gradle + fi + - name: Publish major version + run: | + version=v$(.circleci/version.sh) + echo "Publishing a major release! version=$version" + ./gradlew clean publish --stacktrace --debug + ./gradlew closeAndReleaseRepository --stacktrace --debug + + major_tagging: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: check RC version + run: | + if [ -z "$TAG_NAME" ]; then + echo "this is not RC version" + else + sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle + awk '/version '\''/' build.gradle + fi + - name: Generate tag + run: | + current_version=$(.circleci/version.sh) + echo "git tag v$current_version" + git config --global user.email "team.devops@groundx.xyz" + git config --global user.name "circleci-klaytn" + git tag -a v$current_version -m "$CIRCLE_STAGE" + git push origin v$current_version + + - name: delete release branch + run: | + #delete release branch. it trigger by merge title + version=v$(.circleci/version.sh) + + if [[ "release/v" = $(git log --oneline -1 | grep -o "release/v") ]]; then + echo "Delete branch release/$version" + git push origin --delete release/$version + else + echo "Need to delete branch manually" + fi From 8c7f427663378d96f2f4b65273d664012a977a28 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 16:11:05 +0700 Subject: [PATCH 43/55] debug --- .github/workflows/{build.yaml => test.yaml} | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) rename .github/workflows/{build.yaml => test.yaml} (98%) diff --git a/.github/workflows/build.yaml b/.github/workflows/test.yaml similarity index 98% rename from .github/workflows/build.yaml rename to .github/workflows/test.yaml index 4ea01abc..a52dde0f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/test.yaml @@ -18,7 +18,7 @@ on: env: TAG: ${{ github.ref }} - TAG_NAME: ${TAG#refs/tags/} + jobs: @@ -224,6 +224,7 @@ jobs: - uses: actions/checkout@v4 - name: Push release branch run: | + TAG_NAME: ${TAG#refs/tags/} echo "push to release branch: /release/${TAG_NAME%-*}" git checkout -b release/${TAG_NAME%-*} git push origin release/${TAG_NAME%-*} @@ -235,6 +236,7 @@ jobs: type hub - name: Create pull request run: | + TAG_NAME: ${TAG#refs/tags/} version=$(hub pr list -s open -L 10 -f "%H%n") echo $version if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then @@ -250,6 +252,7 @@ jobs: - uses: actions/checkout@v4 - name: check RC version run: | + TAG_NAME: ${TAG#refs/tags/} if [ -z "$TAG_NAME" ]; then echo "this is not RC version" else @@ -269,6 +272,7 @@ jobs: - uses: actions/checkout@v4 - name: check RC version run: | + TAG_NAME: ${TAG#refs/tags/} if [ -z "$TAG_NAME" ]; then echo "this is not RC version" else From 4348afd3aa6b187f796781874c56a25258e5f4ff Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 16:13:09 +0700 Subject: [PATCH 44/55] fix tagname bug --- .github/workflows/test.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a52dde0f..8987ed15 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -224,7 +224,7 @@ jobs: - uses: actions/checkout@v4 - name: Push release branch run: | - TAG_NAME: ${TAG#refs/tags/} + TAG_NAME="${TAG#refs/tags/}" echo "push to release branch: /release/${TAG_NAME%-*}" git checkout -b release/${TAG_NAME%-*} git push origin release/${TAG_NAME%-*} @@ -236,7 +236,7 @@ jobs: type hub - name: Create pull request run: | - TAG_NAME: ${TAG#refs/tags/} + TAG_NAME="${TAG#refs/tags/}" version=$(hub pr list -s open -L 10 -f "%H%n") echo $version if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then @@ -252,7 +252,7 @@ jobs: - uses: actions/checkout@v4 - name: check RC version run: | - TAG_NAME: ${TAG#refs/tags/} + TAG_NAME="${TAG#refs/tags/}" if [ -z "$TAG_NAME" ]; then echo "this is not RC version" else @@ -272,7 +272,7 @@ jobs: - uses: actions/checkout@v4 - name: check RC version run: | - TAG_NAME: ${TAG#refs/tags/} + TAG_NAME="${TAG#refs/tags/}" if [ -z "$TAG_NAME" ]; then echo "this is not RC version" else From 294b2a221360edf4f1d85cf9fdeaf522589f8916 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 16:55:38 +0700 Subject: [PATCH 45/55] fix create_PR --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8987ed15..326c8512 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -243,7 +243,7 @@ jobs: echo "PR already exist" else echo "hub pull-request -m "[Main] release/$TAG_NAME QA Signoff" -b $CIRCLE_PROJECT_USERNAME:main -h $CIRCLE_PROJECT_USERNAME:${TAG_NAME%-*}" - echo -e "[Main] release/${TAG_NAME%-*} QA Sign-off\n\nThis PR is automatically created by CI to release a new official version of $CIRCLE_PROJECT_REPONAME.\n\nWhen this PR is approved by QA team, a new version will be released." | hub pull-request -b $CIRCLE_PROJECT_USERNAME:main -h $CIRCLE_PROJECT_USERNAME:release/${TAG_NAME%-*} -r $GITHUB_reviewer -l circleci -F- + gh pr create --title "[Main] release/${TAG_NAME%-*} QA Sign-off" --base main --head release/${TAG_NAME%-*} fi major_publish: From 258ebd658f4126f6c0f5bbebee191de681e9ca41 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 16:55:53 +0700 Subject: [PATCH 46/55] fix create_PR --- .github/workflows/test.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 326c8512..670f5aa6 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -242,7 +242,6 @@ jobs: if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then echo "PR already exist" else - echo "hub pull-request -m "[Main] release/$TAG_NAME QA Signoff" -b $CIRCLE_PROJECT_USERNAME:main -h $CIRCLE_PROJECT_USERNAME:${TAG_NAME%-*}" gh pr create --title "[Main] release/${TAG_NAME%-*} QA Sign-off" --base main --head release/${TAG_NAME%-*} fi From 751fc51fccd3a994ac737b996c1b7afccec7a94f Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 17:24:22 +0700 Subject: [PATCH 47/55] remove hub installation --- .github/workflows/test.yaml | 108 +++++++++++++++++------------------- 1 file changed, 51 insertions(+), 57 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 670f5aa6..b4637d4b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -228,16 +228,10 @@ jobs: echo "push to release branch: /release/${TAG_NAME%-*}" git checkout -b release/${TAG_NAME%-*} git push origin release/${TAG_NAME%-*} - - name: Install hub - run: | - curl -sSLf https://github.com/github/hub/releases/download/v2.12.3/hub-linux-amd64-2.12.3.tgz | \ - tar zxf - --strip-components=1 -C /tmp && \ - sudo mv /tmp/bin/hub /usr/local/bin/hub - type hub - name: Create pull request run: | TAG_NAME="${TAG#refs/tags/}" - version=$(hub pr list -s open -L 10 -f "%H%n") + version=$(gh pr list --state open --limit 10 --json headRefName --jq '.[].headRefName') echo $version if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then echo "PR already exist" @@ -245,56 +239,56 @@ jobs: gh pr create --title "[Main] release/${TAG_NAME%-*} QA Sign-off" --base main --head release/${TAG_NAME%-*} fi - major_publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: check RC version - run: | - TAG_NAME="${TAG#refs/tags/}" - if [ -z "$TAG_NAME" ]; then - echo "this is not RC version" - else - sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle - awk '/version '\''/' build.gradle - fi - - name: Publish major version - run: | - version=v$(.circleci/version.sh) - echo "Publishing a major release! version=$version" - ./gradlew clean publish --stacktrace --debug - ./gradlew closeAndReleaseRepository --stacktrace --debug + # major_publish: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: check RC version + # run: | + # TAG_NAME="${TAG#refs/tags/}" + # if [ -z "$TAG_NAME" ]; then + # echo "this is not RC version" + # else + # sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle + # awk '/version '\''/' build.gradle + # fi + # - name: Publish major version + # run: | + # version=v$(.circleci/version.sh) + # echo "Publishing a major release! version=$version" + # ./gradlew clean publish --stacktrace --debug + # ./gradlew closeAndReleaseRepository --stacktrace --debug - major_tagging: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: check RC version - run: | - TAG_NAME="${TAG#refs/tags/}" - if [ -z "$TAG_NAME" ]; then - echo "this is not RC version" - else - sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle - awk '/version '\''/' build.gradle - fi - - name: Generate tag - run: | - current_version=$(.circleci/version.sh) - echo "git tag v$current_version" - git config --global user.email "team.devops@groundx.xyz" - git config --global user.name "circleci-klaytn" - git tag -a v$current_version -m "$CIRCLE_STAGE" - git push origin v$current_version + # major_tagging: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - name: check RC version + # run: | + # TAG_NAME="${TAG#refs/tags/}" + # if [ -z "$TAG_NAME" ]; then + # echo "this is not RC version" + # else + # sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle + # awk '/version '\''/' build.gradle + # fi + # - name: Generate tag + # run: | + # current_version=$(.circleci/version.sh) + # echo "git tag v$current_version" + # git config --global user.email "team.devops@groundx.xyz" + # git config --global user.name "circleci-klaytn" + # git tag -a v$current_version -m "$CIRCLE_STAGE" + # git push origin v$current_version - - name: delete release branch - run: | - #delete release branch. it trigger by merge title - version=v$(.circleci/version.sh) + # - name: delete release branch + # run: | + # #delete release branch. it trigger by merge title + # version=v$(.circleci/version.sh) - if [[ "release/v" = $(git log --oneline -1 | grep -o "release/v") ]]; then - echo "Delete branch release/$version" - git push origin --delete release/$version - else - echo "Need to delete branch manually" - fi + # if [[ "release/v" = $(git log --oneline -1 | grep -o "release/v") ]]; then + # echo "Delete branch release/$version" + # git push origin --delete release/$version + # else + # echo "Need to delete branch manually" + # fi From 062d022861721aa8bfe0aa2b5138c3eb71589d4c Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 17:25:32 +0700 Subject: [PATCH 48/55] add GITHUB_TOKEN to env --- .github/workflows/test.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b4637d4b..f008bcb8 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -217,6 +217,8 @@ jobs: release_PR: + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} permissions: contents: write runs-on: ubuntu-latest From 8cdf854e2137cd5a3a519b02165c9dd37ce57ad9 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 17:26:56 +0700 Subject: [PATCH 49/55] add body to gh pr create --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index f008bcb8..d68f0fa5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -238,7 +238,7 @@ jobs: if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then echo "PR already exist" else - gh pr create --title "[Main] release/${TAG_NAME%-*} QA Sign-off" --base main --head release/${TAG_NAME%-*} + gh pr create --title "[Main] release/${TAG_NAME%-*} QA Sign-off" --body "release/${TAG_NAME%-*}" --base main --head release/${TAG_NAME%-*} fi # major_publish: From 4f2a7366b10f97e323401a21905508981e1de1b2 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 17:29:02 +0700 Subject: [PATCH 50/55] update permission for PR release --- .github/workflows/test.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d68f0fa5..f6cd2f11 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -221,6 +221,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} permissions: contents: write + pull-requests: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 3b8c72ef87db1aef90456c45593b40d311b2ffdb Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 17:46:17 +0700 Subject: [PATCH 51/55] test major_publish --- .github/workflows/test.yaml | 80 ++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index f6cd2f11..99b572f9 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -216,51 +216,51 @@ jobs: # ./gradlew build --debug -x test - release_PR: - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - permissions: - contents: write - pull-requests: write - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Push release branch - run: | - TAG_NAME="${TAG#refs/tags/}" - echo "push to release branch: /release/${TAG_NAME%-*}" - git checkout -b release/${TAG_NAME%-*} - git push origin release/${TAG_NAME%-*} - - name: Create pull request - run: | - TAG_NAME="${TAG#refs/tags/}" - version=$(gh pr list --state open --limit 10 --json headRefName --jq '.[].headRefName') - echo $version - if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then - echo "PR already exist" - else - gh pr create --title "[Main] release/${TAG_NAME%-*} QA Sign-off" --body "release/${TAG_NAME%-*}" --base main --head release/${TAG_NAME%-*} - fi - - # major_publish: + # release_PR: + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # permissions: + # contents: write + # pull-requests: write # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v4 - # - name: check RC version + # - name: Push release branch # run: | - # TAG_NAME="${TAG#refs/tags/}" - # if [ -z "$TAG_NAME" ]; then - # echo "this is not RC version" - # else - # sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle - # awk '/version '\''/' build.gradle - # fi - # - name: Publish major version + # TAG_NAME="${TAG#refs/tags/}" + # echo "push to release branch: /release/${TAG_NAME%-*}" + # git checkout -b release/${TAG_NAME%-*} + # git push origin release/${TAG_NAME%-*} + # - name: Create pull request # run: | - # version=v$(.circleci/version.sh) - # echo "Publishing a major release! version=$version" - # ./gradlew clean publish --stacktrace --debug - # ./gradlew closeAndReleaseRepository --stacktrace --debug + # TAG_NAME="${TAG#refs/tags/}" + # version=$(gh pr list --state open --limit 10 --json headRefName --jq '.[].headRefName') + # echo $version + # if [[ $version == *"release/${TAG_NAME%-*}"* ]]; then + # echo "PR already exist" + # else + # gh pr create --title "[Main] release/${TAG_NAME%-*} QA Sign-off" --body "release/${TAG_NAME%-*}" --base main --head release/${TAG_NAME%-*} + # fi + + major_publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: check RC version + run: | + TAG_NAME="${TAG#refs/tags/}" + if [ -z "$TAG_NAME" ]; then + echo "this is not RC version" + else + sed -i "s/version '.*'/version '${TAG_NAME:1}'/" build.gradle + awk '/version '\''/' build.gradle + fi + - name: Publish major version + run: | + version=v$(.circleci/version.sh) + echo "Publishing a major release! version=$version" + ./gradlew clean publish --stacktrace --debug + ./gradlew closeAndReleaseRepository --stacktrace --debug # major_tagging: # runs-on: ubuntu-latest From 4ef1887d7ef8392e5580e52d57ed70266966c0e2 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Fri, 16 May 2025 17:55:23 +0700 Subject: [PATCH 52/55] update java version --- .github/workflows/test.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 99b572f9..a26f8cef 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -246,6 +246,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '8' - name: check RC version run: | TAG_NAME="${TAG#refs/tags/}" From 4541a09ed6cf213ef3457d0ce8b5409aad441c08 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 19 May 2025 10:21:01 +0700 Subject: [PATCH 53/55] add GRALDE secret env --- .github/workflows/test.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a26f8cef..d79ed082 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -260,6 +260,9 @@ jobs: awk '/version '\''/' build.gradle fi - name: Publish major version + env: + ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} run: | version=v$(.circleci/version.sh) echo "Publishing a major release! version=$version" From 8cbb701edd8f863f0cfc35e763529a037d880ff5 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 19 May 2025 14:11:21 +0700 Subject: [PATCH 54/55] add OSRH PASSWORD and USERNAME --- .github/workflows/test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d79ed082..9da6e87b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -261,8 +261,8 @@ jobs: fi - name: Publish major version env: - ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} - ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} run: | version=v$(.circleci/version.sh) echo "Publishing a major release! version=$version" From 05f4ed2489065c8712f6110d02d163f1f0c11b54 Mon Sep 17 00:00:00 2001 From: Sotatek-TuLe2 Date: Mon, 19 May 2025 14:15:06 +0700 Subject: [PATCH 55/55] add OSRH PASSWORD and USERNAME --- .github/workflows/test.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 9da6e87b..5399facc 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -263,6 +263,8 @@ jobs: env: ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} run: | version=v$(.circleci/version.sh) echo "Publishing a major release! version=$version"