diff --git a/.github/workflows/bunTest.yaml b/.github/workflows/bunTest.yaml new file mode 100644 index 0000000..7d34272 --- /dev/null +++ b/.github/workflows/bunTest.yaml @@ -0,0 +1,49 @@ +name: Bun Test 🧪 + +on: + push: + branches: + - main + - feature-bunTest + paths: + - "test/bun/**" + - ".github/workflows/bunTest.yaml" + +jobs: + bunTest: + runs-on: ubuntu-24.04 + permissions: + contents: read + packages: write + attestations: write + id-token: write + name: Bun Test + steps: + - uses: actions/checkout@v4.2.2 + - name: use Default + uses: KAnggara/DevOps/test/bun@feature-bunTest + with: + path: action_test/bun + + - run: | + cd action_test/bun + rm .env + - name: Default with Version + uses: KAnggara/DevOps/test/bun@feature-bunTest + with: + path: action_test/bun + bun_version: 1.2.0 + + - run: | + cd action_test/bun + rm .env + rm .env.example + - name: Default with Dot Env + uses: KAnggara/DevOps/test/bun@feature-bunTest + with: + path: action_test/bun + dot_env: ${{ secrets.BUN_ENV_ACTION_TEST }} + + - uses: KAnggara/DevOps/test/bun@feature-bunTest + with: + path: action_test/bun diff --git a/.github/workflows/maventest.yaml b/.github/workflows/maventest.yaml index 4a5d0d5..4afb17c 100644 --- a/.github/workflows/maventest.yaml +++ b/.github/workflows/maventest.yaml @@ -7,7 +7,7 @@ on: - feature-mavenTest paths: - "test/mvn/**" - - ".github/workflows/maventest.yaml" + - ".github/workflows/mavenTest.yaml" jobs: mavenTest: diff --git a/action_test/bun/.env.example b/action_test/bun/.env.example new file mode 100644 index 0000000..07e5ecd --- /dev/null +++ b/action_test/bun/.env.example @@ -0,0 +1,11 @@ +BAGIA=20 +BAGIB=4 +BAGIC=5 + +TAMBAHA=4 +TAMBAHB=6 +TAMBAHC=10 + +MODA=22 +MODB=7 +MODC=1 diff --git a/action_test/bun/coverage/lcov.info b/action_test/bun/coverage/lcov.info index af42d7c..c2742ad 100644 --- a/action_test/bun/coverage/lcov.info +++ b/action_test/bun/coverage/lcov.info @@ -1,18 +1,18 @@ TN: SF:src/calc.ts -FNF:4 -FNH:2 +FNF:6 +FNH:3 DA:1,11 DA:2,9 DA:3,23 -DA:5,0 -DA:6,8 -DA:8,15 -DA:9,16 -DA:10,35 -DA:11,24 -DA:12,1 -DA:13,14 -LF:16 -LH:10 +DA:6,0 +DA:7,8 +DA:10,0 +DA:11,8 +DA:14,9 +DA:15,23 +DA:18,9 +DA:19,16 +LF:22 +LH:9 end_of_record diff --git a/action_test/bun/src/calc.ts b/action_test/bun/src/calc.ts index c9e8005..6269c41 100644 --- a/action_test/bun/src/calc.ts +++ b/action_test/bun/src/calc.ts @@ -1,15 +1,21 @@ export class Calc { - static add(a: number, b: number) { + static tambah(a: number, b: number) { return a + b; } - static div(a: number, b: number) { + + static kurang(a: number, b: number) { return a - b; } - static sum(...numbers: number[]) { - let sum = 0; - for (const element of numbers) { - sum += element; - } - return sum; + + static kali(a: number, b: number) { + return a * b; + } + + static bagi(a: number, b: number) { + return a / b; + } + + static mod(a: number, b: number) { + return a % b; } } diff --git a/action_test/bun/test/calc.test.ts b/action_test/bun/test/calc.test.ts index f695bf1..b82f92a 100644 --- a/action_test/bun/test/calc.test.ts +++ b/action_test/bun/test/calc.test.ts @@ -1,11 +1,28 @@ import { Calc } from "../src/calc"; import { describe, expect, it } from "bun:test"; +const bagia = parseInt(process.env.BAGIA, 0); +const bagib = parseInt(process.env.BAGIB, 0); +const bagic = parseInt(process.env.BAGIC, 0); + +const tambaha = parseInt(process.env.TAMBAHA, 0); +const tambahb = parseInt(process.env.TAMBAHB, 0); +const tambahc = parseInt(process.env.TAMBAHC, 0); + +const moda = parseInt(process.env.MODA, 0); +const modb = parseInt(process.env.MODB, 0); +const modc = parseInt(process.env.MODC, 0); + describe("Test add", () => { - it("Test Sum", () => { - expect(Calc.sum(1, 2, 3, 4)).toBe(10); + it("Test Add", () => { + expect(Calc.tambah(tambaha, tambahb)).toBe(tambahc); }); + + it("Test Bagi", () => { + expect(Calc.bagi(bagia, bagib)).toBe(bagic); + }); + it("Test Add", () => { - expect(Calc.add(4, 6)).toBe(10); + expect(Calc.mod(moda, modb)).toBe(modc); }); }); diff --git a/test/bun/action.yaml b/test/bun/action.yaml new file mode 100644 index 0000000..7cd2f1b --- /dev/null +++ b/test/bun/action.yaml @@ -0,0 +1,28 @@ +name: "Bun Test" +description: "Test Bun Project" + +inputs: + path: + description: "Path of Bun Project, default ./" + required: false + bun_version: + description: "Bun Version, default latest" + required: false + dot_env: + description: "Bun env Variable, default existing in project" + required: false + +runs: + using: "composite" + steps: + - name: Bun Setup + uses: oven-sh/setup-bun@v2 + with: + bun-version: ${{ inputs.bun_version || 'latest' }} + + - name: Generate application properties and test + shell: bash + env: + DOTENV: ${{ inputs.dot_env }} + WORK_DIR: ${{ inputs.path }} + run: $GITHUB_ACTION_PATH/buntest.sh diff --git a/test/bun/buntest.sh b/test/bun/buntest.sh new file mode 100755 index 0000000..c28d3fd --- /dev/null +++ b/test/bun/buntest.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -eu + +abort() { + printf "%s\n" "$@" + exit 1 +} + +override_config() { + if [[ -n "$WORK_DIR" ]]; then + cd $WORK_DIR + fi + + if [[ -n "$DOTENV" ]]; then + if [[ -f .env ]]; then + echo "Rewrite .env" + printf "%s" "$DOTENV" >.env + elif [[ -f .env.example ]]; then + echo "Copy .env.example to .env" + cp .env.example .env + fi + elif [[ -f .env ]]; then + echo "DOTENV var not exist, keep it as is" + elif [[ -f .env.example ]]; then + echo "Copy .env.example to .env" + cp .env.example .env + else + echo "DOTENV var not exist, keep it as is" + fi +} + +bun_test() { + echo "Bun Test" + bun -v + bun install + bun test +} + +main() { + override_config + bun_test +} + +main || abort "Override config Execute Error!"