Cleaned up CI workflows

This commit is contained in:
Erik C. Thauvin 2024-07-12 21:58:34 -07:00
parent db0e4d30f1
commit c3a8018cc3
Signed by: erik
GPG key ID: 776702A6A2DA330E
8 changed files with 68 additions and 60 deletions

View file

@ -1,4 +1,8 @@
version: 2 version: 2.1
orbs:
sdkman: joshdholtz/sdkman@0.2.0
defaults: &defaults defaults: &defaults
working_directory: ~/repo working_directory: ~/repo
environment: environment:
@ -6,26 +10,31 @@ defaults: &defaults
TERM: dumb TERM: dumb
CI_NAME: "CircleCI" CI_NAME: "CircleCI"
defaults_bld: &defaults_bld commands:
steps: build_and_test:
- checkout parameters:
- run: reports-dir:
name: Install Kotlin via SDKMAN! type: string
command: | default: "build/reports/test_results"
curl -s "https://get.sdkman.io" | bash steps:
echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config - checkout
echo sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config - sdkman/setup-sdkman
source "$HOME/.sdkman/bin/sdkman-init.sh" - sdkman/sdkman-install:
sdk install kotlin 2.0.0 candidate: kotlin
- run: version: 2.0.0
name: Download the bld dependencies - run:
command: ./bld download name: Download dependencies
- run: command: ./bld download
name: Compile source with bld - run:
command: ./bld compile name: Compile source
- run: command: ./bld compile
name: Run tests with bld - run:
command: ./bld test name: Run tests
command: ./bld jacoco -reports-dir=<< parameters.reports-dir >>
- store_test_results:
path: << parameters.reports-dir >>
- store_artifacts:
path: build/reports/jacoco/test/html
jobs: jobs:
bld_jdk17: bld_jdk17:
@ -34,7 +43,8 @@ jobs:
docker: docker:
- image: cimg/openjdk:17.0 - image: cimg/openjdk:17.0
<<: *defaults_bld steps:
- build_and_test
bld_jdk20: bld_jdk20:
<<: *defaults <<: *defaults
@ -42,10 +52,10 @@ jobs:
docker: docker:
- image: cimg/openjdk:20.0 - image: cimg/openjdk:20.0
<<: *defaults_bld steps:
- build_and_test
workflows: workflows:
version: 2
bld: bld:
jobs: jobs:
- bld_jdk17 - bld_jdk17

View file

@ -1,19 +1,29 @@
name: bld-ci name: bld-ci
on: [push, pull_request, workflow_dispatch] on: [ push, pull_request, workflow_dispatch ]
env:
ALPHAVANTAGE_API_KEY: ${{ secrets.ALPHAVANTAGE_API_KEY }}
CHATGPT_API_KEY: ${{ secrets.CHATGPT_API_KEY }}
CI_NAME: "GitHub CI"
COVERAGE_JDK: "21"
COVERAGE_KOTLIN: "2.0.0"
EXCHANGERATE_API_KEY: ${{ secrets.EXCHANGERATE_API_KEY }}
KOTLIN_HOME: /usr/share/kotlinc
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }}
MASTODON_HANDLE: ${{ secrets.MASTODON_HANDLE }}
MASTODON_INSTANCE: ${{ secrets.MASTODON_INSTANCE }}
OWM_API_KEY: ${{ secrets.OWM_API_KEY }}
PINBOARD_API_TOKEN: ${{ secrets.PINBOARD_API_TOKEN }}
jobs: jobs:
build-bld-project: build-bld-project:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env:
COVERAGE_SDK: "17"
COVERAGE_KOTLIN: "2.0.0"
strategy: strategy:
matrix: matrix:
java-version: [17, 21, 22] java-version: [ 17, 21, 22 ]
kotlin-version: [1.9.24, 2.0.0] kotlin-version: [ 1.9.24, 2.0.0 ]
steps: steps:
- name: Checkout source repository - name: Checkout source repository
@ -21,40 +31,28 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Set up JDK ${{ matrix.java-version }} - name: Set up JDK ${{ matrix.java-version }} with Kotlin ${{ matrix.kotlin-version }}
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
distribution: "zulu" distribution: "zulu"
java-version: ${{ matrix.java-version }} java-version: ${{ matrix.java-version }}
- name: Grant bld execute permission - name: Download dependencies
run: chmod +x bld
- name: Download the bld dependencies
run: ./bld download run: ./bld download
- name: Compile source with bld - name: Compile source
run: ./bld compile run: ./bld compile
- name: Run tests with bld - name: Run tests
env:
CI_NAME: "GitHub CI"
ALPHAVANTAGE_API_KEY: ${{ secrets.ALPHAVANTAGE_API_KEY }}
CHATGPT_API_KEY: ${{ secrets.CHATGPT_API_KEY }}
OWM_API_KEY: ${{ secrets.OWM_API_KEY }}
PINBOARD_API_TOKEN: ${{ secrets.PINBOARD_API_TOKEN }}
MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }}
MASTODON_HANDLE: ${{ secrets.MASTODON_HANDLE }}
MASTODON_INSTANCE: ${{ secrets.MASTODON_INSTANCE }}
EXCHANGERATE_API_KEY: ${{ secrets.EXCHANGERATE_API_KEY }}
run: ./bld jacoco run: ./bld jacoco
- name: Remove pom.xml - name: Remove pom.xml
if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN
run: rm -rf pom.xml run: rm -rf pom.xml
- name: SonarCloud Scan - name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master uses: sonarsource/sonarcloud-github-action@master
if: success() && matrix.java-version == env.COVERAGE_SDK && matrix.kotlin-version == env.COVERAGE_KOTLIN if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

View file

@ -1,4 +1,4 @@
image: ubuntu:latest image: fedora:latest
variables: variables:
CI_NAME: "GitLab CI" CI_NAME: "GitLab CI"
@ -7,13 +7,13 @@ stages:
- test - test
before_script: before_script:
- apt-get update -qq && apt-get install -y curl zip - dnf -qy update && dnf -y install zip
- curl -s "https://get.sdkman.io" | bash - curl -s "https://get.sdkman.io" | bash
- echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config - echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config
- echo sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config - echo sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config
- source "$HOME/.sdkman/bin/sdkman-init.sh" - source "$HOME/.sdkman/bin/sdkman-init.sh"
- sdk install java 17.0.11-tem - sdk install java
- sdk install kotlin 2.0.0 - sdk install kotlin
- source "$HOME/.sdkman/bin/sdkman-init.sh" - source "$HOME/.sdkman/bin/sdkman-init.sh"
test: test:

View file

@ -2,12 +2,12 @@
<library name="bld"> <library name="bld">
<CLASSES> <CLASSES>
<root url="file://$PROJECT_DIR$/lib/bld" /> <root url="file://$PROJECT_DIR$/lib/bld" />
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.0.0-SNAPSHOT.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES> <SOURCES>
<root url="file://$PROJECT_DIR$/lib/bld" /> <root url="file://$PROJECT_DIR$/lib/bld" />
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1-sources.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.0.0-SNAPSHOT-sources.jar!/" />
</SOURCES> </SOURCES>
<excluded> <excluded>
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" /> <root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />

View file

@ -5,14 +5,14 @@ pipelines:
- step: - step:
name: Test with bld name: Test with bld
script: script:
# Install Java & Kotlin via SDKMAN! # Install latest Java & Kotlin via SDKMAN!
- apt-get update -qq && apt-get install -y curl zip - apt-get update -qq && apt-get install -y curl zip
- curl -s "https://get.sdkman.io" | bash - curl -s "https://get.sdkman.io" | bash
- echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config - echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config
- echo sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config - echo sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config
- source "$HOME/.sdkman/bin/sdkman-init.sh" - source "$HOME/.sdkman/bin/sdkman-init.sh"
- sdk install java 17.0.11-tem - sdk install java
- sdk install kotlin 2.0.0 - sdk install kotlin
- source "$HOME/.sdkman/bin/sdkman-init.sh" - source "$HOME/.sdkman/bin/sdkman-init.sh"
# Download, compile and test with bld # Download, compile and test with bld
- ./bld download - ./bld download

Binary file not shown.

View file

@ -7,4 +7,4 @@ bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.6
bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.0-SNAPSHOT bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.0-SNAPSHOT
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
bld.sourceDirectories= bld.sourceDirectories=
bld.version=1.9.1 bld.version=2.0.0-SNAPSHOT

View file

@ -49,7 +49,7 @@ class ChatGptTest : LocalProperties() {
@Test @Test
fun testChatOnCoverage() { fun testChatOnCoverage() {
if (System.getenv("CI") == null || System.getenv("COVERAGE_SDK") != null) { if (System.getenv("CI") == null || System.getenv("COVERAGE_JDK") != null) {
assertThat( assertThat(
ChatGpt.chat("how do I encode a URL in java?", getProperty(ChatGpt.API_KEY_PROP), 60) ChatGpt.chat("how do I encode a URL in java?", getProperty(ChatGpt.API_KEY_PROP), 60)
).contains("URLEncoder") ).contains("URLEncoder")