简单的实践操作
这两天一直在写算法,但是一个一个测试太麻烦了,并且也没有文档看,简直累人,所以就写了个action
让它自动生成并部署到GithubPage
上面去,爽了。
groovydependencies { ...... testImplementation( 'org.assertj:assertj-core:3.12.2', 'org.junit.jupiter:junit-jupiter-api:5.4.2' ) testRuntime('org.junit.jupiter:junit-jupiter-engine:5.4.2') }
groovytest { useJUnitPlatform() }
完成!看看效果吧~
测试成功~
本次使用的是kotlin
官方文档生成器dokka,内含有多种生成方案,并且可以集成到Gradle
中,爽的。
这里以插件方式引入:
groovyplugins { ...... id 'org.jetbrains.dokka' version '0.10.1' }
groovydokka { // 样式,具体看官方文档 outputFormat = 'javadoc' outputDirectory = "$buildDir/dokka" disableAutoconfiguration = false cacheRoot = 'default' configuration { moduleName = 'doc' // Use to include or exclude non public members. includeNonPublic = false // Do not output deprecated members. Applies globally, can be overridden by packageOptions skipDeprecated = false // Emit warnings about not documented members. Applies globally, also can be overridden by packageOptions reportUndocumented = true // Do not create index pages for empty packages skipEmptyPackages = true // This is a list of platform names that will be shown in the final result. See the "Platforms" section of this readme targets = ["JVM"] // Platform used for code analysis. See the "Platforms" section of this readme platform = "JVM" sourceRoot { // 源文件目录 path = "src" } sourceLink { // Unix based directory relative path to the root of the project (where you execute gradle respectively). path = "src/main/kotlin" // or simply "./" // URL showing where the source code can be accessed through the web browser url = "https://github.com/xmmmmmovo/Algorithms4thEditionKotlinSolutions/blob/master/src/main/kotlin" //remove src/main/kotlin if you use "./" above // 指定行数前缀,github是#L lineSuffix = "#L" } // 用于链接java官方文档 jdkVersion = 8 // Disable linking to online kotlin-stdlib documentation noStdlibLink = false // Disable linking to online JDK documentation noJdkLink = false } }
完成!看看效果~
成功~
每次都运行脚本太累了,干脆直接用CI
自动跑了,这里用的是GithubAction
,具体如何使用可以看:如何利用GitHubAction和GithubPage部署React应用 这篇,这里只写出yml
文件:
yaml# workflow name
name: Test Workflow
on:
push:
branches:
- master
jobs:
test:
name: Kotlin Tests
runs-on: ubuntu-latest
env:
TZ: Asia/Shanghai
steps:
# check it to your workflow can access it
# from: https://github.com/actions/checkout
- name: Checkout Repository master branch
uses: actions/checkout@master
# 验证wrapper
- name: validate wrapper
uses: gradle/wrapper-validation-action@v1
# 安装jdk
- name: Set up JDK 8
uses: actions/setup-java@v1
with:
java-version: 1.8
# 缓存
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
# 给权限
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# 测试程序
- name: Test with gradle
run: ./gradlew test
yaml# workflow name
name: Doc Workflow
on:
release:
types: [published]
branches:
- master
jobs:
test:
name: Kotlin Documentation Generation
runs-on: ubuntu-latest
env:
TZ: Asia/Shanghai
steps:
# check it to your workflow can access it
# from: https://github.com/actions/checkout
- name: Checkout Repository master branch
uses: actions/checkout@master
# 验证wrapper
- name: validate wrapper
uses: gradle/wrapper-validation-action@v1
# 安装jdk
- name: Set up JDK 8
uses: actions/setup-java@v1
with:
java-version: 1.8
# 缓存
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
# 给权限
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# 缓存
# 暂时还未找到hash值的解决方案,找到了请pr
# - name: Cache Dokka
# uses: actions/cache@v2
# with:
# path: ~/.cache/dokka
# key: ${{ runner.os }}-dokka-${{ hashFiles('**/*') }}
# restore-keys: ${{ runner.os }}-dokka
# 生成文档
- name: Generate documentation
run: ./gradlew dokka
# 部署到ghpage
- name: Deploy to gh-pages
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir: ./build/dokka
完成!测试一下~
成功~
爽到了爽到了~
本文作者:xmmmmmovo
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可协议。转载请注明出处!