Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
2153a5f
add job : docs_test
Sotatek-TuLe2 Mar 5, 2025
67e22ba
edit trigger branch to test
Sotatek-TuLe2 Mar 5, 2025
c10ece3
add concurrency job
Sotatek-TuLe2 Mar 5, 2025
5b0a627
debug : remove concurency
Sotatek-TuLe2 Mar 5, 2025
b618714
add unit_test step
Sotatek-TuLe2 Mar 5, 2025
e76665f
update working dir
Sotatek-TuLe2 Mar 5, 2025
83f9fbe
correct check_test_network
Sotatek-TuLe2 Mar 5, 2025
01ad135
build test
Sotatek-TuLe2 Mar 5, 2025
a26e51d
setup unit_test_android
Sotatek-TuLe2 Mar 13, 2025
9fed267
add .circleci/setup_android_instrumented_test-gha.sh
Sotatek-TuLe2 Mar 13, 2025
de0fa9f
update ci
Sotatek-TuLe2 Mar 13, 2025
97e82c6
add install android-sdk step
Sotatek-TuLe2 Mar 17, 2025
133a740
CICD : add install sdkmanager step
Sotatek-TuLe2 Mar 17, 2025
dbf3651
update cicd
Sotatek-TuLe2 Mar 17, 2025
7025e60
update ci, change way to install sdk manager
Sotatek-TuLe2 Mar 17, 2025
2a403b3
update ci, change way to install sdk manager
Sotatek-TuLe2 Mar 17, 2025
e90ca9b
switch to use reactivecircus/android-emulator-runner@v2
Sotatek-TuLe2 Mar 17, 2025
2426235
add upload artifact job
Sotatek-TuLe2 Mar 17, 2025
03fa502
change upload job to actions/upload-artifact@v4
Sotatek-TuLe2 Mar 17, 2025
4f11dec
add step : build_test_android
Sotatek-TuLe2 Mar 18, 2025
07ea8b0
enable all test docs steps
Sotatek-TuLe2 Mar 18, 2025
5982440
add check_tag step
Sotatek-TuLe2 Mar 18, 2025
6f9b453
disable other steps
Sotatek-TuLe2 Mar 18, 2025
6da5514
chore: test check_tag
Sotatek-TuLe2 Mar 18, 2025
6932391
add checkout step
Sotatek-TuLe2 Mar 18, 2025
1ab8a14
chore : edit check_tag
Sotatek-TuLe2 Mar 18, 2025
acd18db
chore : edit check_tag
Sotatek-TuLe2 Mar 18, 2025
e178863
update tag
Sotatek-TuLe2 Mar 18, 2025
7f13224
edit trigger to tags
Sotatek-TuLe2 Mar 18, 2025
ed85f94
Edit check_tag job
Sotatek-TuLe2 Mar 18, 2025
097259b
edit check_tag
Sotatek-TuLe2 Mar 18, 2025
c5a43a3
add tagger verify step
Sotatek-TuLe2 Mar 18, 2025
7cb70cc
add tag and tagger verify
Sotatek-TuLe2 Apr 16, 2025
d165e68
disable tag_verify
Sotatek-TuLe2 Apr 16, 2025
1da9b5b
add echo result step to debug
Sotatek-TuLe2 Apr 16, 2025
dabebbc
tagger_verify debug
Sotatek-TuLe2 Apr 16, 2025
a7510cf
tagger_verify : debu
Sotatek-TuLe2 Apr 16, 2025
f01ae7f
tagger_verify: debug
circleci-klaytn Apr 16, 2025
70ccbd7
enable all steps
Sotatek-TuLe2 Apr 25, 2025
48f42f2
edit name of tagger verify steps
Sotatek-TuLe2 Apr 25, 2025
3920f22
add release_PR
Sotatek-TuLe2 Apr 26, 2025
54261b6
update publish
Sotatek-TuLe2 May 16, 2025
8c7f427
debug
Sotatek-TuLe2 May 16, 2025
4348afd
fix tagname bug
Sotatek-TuLe2 May 16, 2025
294b2a2
fix create_PR
Sotatek-TuLe2 May 16, 2025
258ebd6
fix create_PR
Sotatek-TuLe2 May 16, 2025
751fc51
remove hub installation
Sotatek-TuLe2 May 16, 2025
062d022
add GITHUB_TOKEN to env
Sotatek-TuLe2 May 16, 2025
8cdf854
add body to gh pr create
Sotatek-TuLe2 May 16, 2025
4f2a736
update permission for PR release
Sotatek-TuLe2 May 16, 2025
3b8c72e
test major_publish
Sotatek-TuLe2 May 16, 2025
4ef1887
update java version
Sotatek-TuLe2 May 16, 2025
4541a09
add GRALDE secret env
Sotatek-TuLe2 May 19, 2025
8cbb701
add OSRH PASSWORD and USERNAME
Sotatek-TuLe2 May 19, 2025
05f4ed2
add OSRH PASSWORD and USERNAME
Sotatek-TuLe2 May 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .circleci/setup_android_instrumented_test-gha.sh
Original file line number Diff line number Diff line change
@@ -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'
##
306 changes: 306 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,306 @@
name: Test-docs

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push:
branches:
# - main
# - feat/gha-cicd
tags:
- 'v*'

pull_request:
branches:
- main

env:
TAG: ${{ github.ref }}


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

# 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:
# 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:
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/}"
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
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"
./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

# - 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
Loading