From 12916f056529173d50b47ec530cdae4ab35353d1 Mon Sep 17 00:00:00 2001 From: Seunghoon Lee Date: Wed, 20 May 2026 12:02:12 +0900 Subject: [PATCH 1/6] [CI] Docker Integration --- .github/workflows/{push_c.yml => c.yml} | 6 +- .github/workflows/{push_cpp.yml => cpp.yml} | 6 +- .../{push_haskell.yml => haskell.yml} | 8 ++- .../{push_javascript.yml => javascript.yml} | 6 +- .github/workflows/pr_c.yml | 69 ------------------- .github/workflows/pr_cpp.yml | 35 ---------- .github/workflows/pr_haskell.yml | 69 ------------------- .github/workflows/pr_javascript.yml | 33 --------- .github/workflows/pr_python.yml | 46 ------------- .github/workflows/pr_rust.yml | 35 ---------- .../workflows/{push_python.yml => python.yml} | 6 +- .github/workflows/{push_rust.yml => rust.yml} | 6 +- 12 files changed, 31 insertions(+), 294 deletions(-) rename .github/workflows/{push_c.yml => c.yml} (91%) rename .github/workflows/{push_cpp.yml => cpp.yml} (84%) rename .github/workflows/{push_haskell.yml => haskell.yml} (89%) rename .github/workflows/{push_javascript.yml => javascript.yml} (87%) delete mode 100644 .github/workflows/pr_c.yml delete mode 100644 .github/workflows/pr_cpp.yml delete mode 100644 .github/workflows/pr_haskell.yml delete mode 100644 .github/workflows/pr_javascript.yml delete mode 100644 .github/workflows/pr_python.yml delete mode 100644 .github/workflows/pr_rust.yml rename .github/workflows/{push_python.yml => python.yml} (86%) rename .github/workflows/{push_rust.yml => rust.yml} (86%) diff --git a/.github/workflows/push_c.yml b/.github/workflows/c.yml similarity index 91% rename from .github/workflows/push_c.yml rename to .github/workflows/c.yml index b1838a0..b69a0f2 100644 --- a/.github/workflows/push_c.yml +++ b/.github/workflows/c.yml @@ -2,11 +2,15 @@ name: Test for C implementations on: push: branches: [main] + pull_request: + branches: [main] jobs: test: name: Run test - runs-on: ubuntu-22.04 + runs-on: self-hosted + container: + image: ubuntu:22.04 defaults: run: working-directory: ./test diff --git a/.github/workflows/push_cpp.yml b/.github/workflows/cpp.yml similarity index 84% rename from .github/workflows/push_cpp.yml rename to .github/workflows/cpp.yml index cfc56e1..9a7c824 100644 --- a/.github/workflows/push_cpp.yml +++ b/.github/workflows/cpp.yml @@ -2,11 +2,15 @@ name: Test for C++ implementations on: push: branches: [main] + pull_request: + branches: [main] jobs: test: name: Run test - runs-on: ubuntu-22.04 + runs-on: self-hosted + container: + image: ubuntu:22.04 defaults: run: working-directory: ./test diff --git a/.github/workflows/push_haskell.yml b/.github/workflows/haskell.yml similarity index 89% rename from .github/workflows/push_haskell.yml rename to .github/workflows/haskell.yml index bff0775..0cbedf4 100644 --- a/.github/workflows/push_haskell.yml +++ b/.github/workflows/haskell.yml @@ -2,11 +2,15 @@ name: Test for Haskell implementations on: push: branches: [main] + pull_request: + branches: [main] jobs: test: name: Run test - runs-on: ubuntu-22.04 + runs-on: self-hosted + container: + image: ubuntu:22.04 defaults: run: working-directory: ./test @@ -42,4 +46,4 @@ jobs: run: ./test_maker .test/nsy.test - name: Run test run: ./test ../nsy/haskell/nsy - timeout-minutes: 5 \ No newline at end of file + timeout-minutes: 5 diff --git a/.github/workflows/push_javascript.yml b/.github/workflows/javascript.yml similarity index 87% rename from .github/workflows/push_javascript.yml rename to .github/workflows/javascript.yml index ceef8f4..a84f3da 100644 --- a/.github/workflows/push_javascript.yml +++ b/.github/workflows/javascript.yml @@ -2,11 +2,15 @@ name: Test for JavaScript implementations on: push: branches: [main] + pull_request: + branches: [main] jobs: test: name: Run test - runs-on: ubuntu-22.04 + runs-on: self-hosted + container: + image: ubuntu:22.04 defaults: run: working-directory: ./test diff --git a/.github/workflows/pr_c.yml b/.github/workflows/pr_c.yml deleted file mode 100644 index 7c69913..0000000 --- a/.github/workflows/pr_c.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Test for C implementations -on: - pull_request: - branches: [main] - -jobs: - prepare: - name: Prepare test - runs-on: self-hosted - defaults: - run: - working-directory: ./test - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - name: Build test maker - run: gcc -o test_maker test_maker.c - - test-btn: - name: Run buntang test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: make all - working-directory: ./btn/c - - name: Build host program - run: ./test_maker .test/btn.test - - name: Run test - run: ./test ../btn/c/btn - timeout-minutes: 5 - - test-hd: - name: Run heading test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: make all - working-directory: ./hd/c - - name: Build host program - run: ./test_maker .test/hd.test - - name: Run test - run: ./test ../hd/c/hd - timeout-minutes: 5 - - test-nsy: - name: Run noisy test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: make all - working-directory: ./nsy/c - - name: Build host program - run: ./test_maker .test/nsy.test - - name: Run test - run: ./test ../nsy/c/nsy - timeout-minutes: 5 diff --git a/.github/workflows/pr_cpp.yml b/.github/workflows/pr_cpp.yml deleted file mode 100644 index 6c13bfd..0000000 --- a/.github/workflows/pr_cpp.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Test for C++ implementations -on: - pull_request: - branches: [main] - -jobs: - prepare: - name: Prepare test - runs-on: self-hosted - defaults: - run: - working-directory: ./test - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - name: Build test maker - run: gcc -o test_maker test_maker.c - - test-hd: - name: Run heading test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: make all - working-directory: ./hd/cpp - - name: Build host program - run: ./test_maker .test/hd.test - - name: Run test - run: ./test ../hd/cpp/hd - timeout-minutes: 5 diff --git a/.github/workflows/pr_haskell.yml b/.github/workflows/pr_haskell.yml deleted file mode 100644 index 9f79c74..0000000 --- a/.github/workflows/pr_haskell.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Test for Haskell implementations -on: - pull_request: - branches: [main] - -jobs: - prepare: - name: Prepare test - runs-on: self-hosted - defaults: - run: - working-directory: ./test - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - name: Build test maker - run: gcc -o test_maker test_maker.c - - test-btn: - name: Run buntang test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: ghc btn.hs - working-directory: ./btn/haskell - - name: Build host program - run: ./test_maker .test/btn.test - - name: Run test - run: ./test ../btn/haskell/btn - timeout-minutes: 5 - - test-hd: - name: Run heading test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: ghc hd.hs - working-directory: ./hd/haskell - - name: Build host program - run: ./test_maker .test/hd.test - - name: Run test - run: ./test ../hd/haskell/hd - timeout-minutes: 5 - - test-nsy: - name: Run noisy test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: ghc nsy.hs - working-directory: ./nsy/haskell - - name: Build host program - run: ./test_maker .test/nsy.test - - name: Run test - run: ./test ../nsy/haskell/nsy - timeout-minutes: 5 diff --git a/.github/workflows/pr_javascript.yml b/.github/workflows/pr_javascript.yml deleted file mode 100644 index 022a36c..0000000 --- a/.github/workflows/pr_javascript.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Test for JavaScript implementations -on: - pull_request: - branches: [main] - -jobs: - prepare: - name: Prepare test - runs-on: self-hosted - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - name: Build test maker - run: gcc -o test_maker test_maker.c - working-directory: ./test - - test: - name: Run heading test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: $BUN_INSTALL/bin/bun build hd.js --compile --outfile hd - working-directory: ./hd/javascript - - name: Build host program - run: ./test_maker .test/hd.test - - name: Run test - run: ./test ../hd/javascript/hd - timeout-minutes: 5 diff --git a/.github/workflows/pr_python.yml b/.github/workflows/pr_python.yml deleted file mode 100644 index 1534fda..0000000 --- a/.github/workflows/pr_python.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Test for Python implementations -on: - pull_request: - branches: [main] - -jobs: - prepare: - name: Prepare test - runs-on: self-hosted - defaults: - run: - working-directory: ./test - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - name: Build test maker - run: gcc -o test_maker test_maker.c - - test-btn: - name: Run buntang test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build host program - run: ./test_maker .test/btn.test - - name: Run test - run: ./test "python3 ../btn/python/btn.py" - timeout-minutes: 5 - - test-nsy: - name: Run noisy test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build host program - run: ./test_maker .test/nsy.test - - name: Run test - run: ./test "python3 ../nsy/python/nsy.py" - timeout-minutes: 5 diff --git a/.github/workflows/pr_rust.yml b/.github/workflows/pr_rust.yml deleted file mode 100644 index babe496..0000000 --- a/.github/workflows/pr_rust.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Test for Rust implementations -on: - pull_request: - branches: [main] - -jobs: - prepare: - name: Prepare test - runs-on: self-hosted - defaults: - run: - working-directory: ./test - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - name: Build test maker - run: gcc -o test_maker test_maker.c - - test: - name: Run heading test - runs-on: self-hosted - needs: prepare - defaults: - run: - working-directory: ./test - steps: - - name: Build object program - run: rustc hd.rs -C debuginfo=0 -C opt-level=z -C strip=symbols -o hd - working-directory: ./hd/rust - - name: Build host program - run: ./test_maker .test/hd.test - - name: Run test - run: ./test ../hd/rust/hd - timeout-minutes: 5 diff --git a/.github/workflows/push_python.yml b/.github/workflows/python.yml similarity index 86% rename from .github/workflows/push_python.yml rename to .github/workflows/python.yml index d50dc03..5a0dbf1 100644 --- a/.github/workflows/push_python.yml +++ b/.github/workflows/python.yml @@ -2,11 +2,15 @@ name: Test for Python implementations on: push: branches: [main] + pull_request: + branches: [main] jobs: test: name: Run test - runs-on: ubuntu-22.04 + runs-on: self-hosted + container: + image: ubuntu:22.04 defaults: run: working-directory: ./test diff --git a/.github/workflows/push_rust.yml b/.github/workflows/rust.yml similarity index 86% rename from .github/workflows/push_rust.yml rename to .github/workflows/rust.yml index 0673592..5e289d9 100644 --- a/.github/workflows/push_rust.yml +++ b/.github/workflows/rust.yml @@ -2,11 +2,15 @@ name: Test for Rust implementations on: push: branches: [main] + pull_request: + branches: [main] jobs: test: name: Run test - runs-on: ubuntu-22.04 + runs-on: self-hosted + container: + image: ubuntu:22.04 defaults: run: working-directory: ./test From 9dd73717bf4bd3a8dd4055848263a50387b5f0fc Mon Sep 17 00:00:00 2001 From: Seunghoon Lee Date: Wed, 20 May 2026 12:08:59 +0900 Subject: [PATCH 2/6] [CI] Fix JavaScript CI. --- .github/workflows/javascript.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/javascript.yml b/.github/workflows/javascript.yml index a84f3da..346597e 100644 --- a/.github/workflows/javascript.yml +++ b/.github/workflows/javascript.yml @@ -25,7 +25,7 @@ jobs: run: gcc -o test_maker test_maker.c - name: Build object program - run: $BUN_INSTALL/bin/bun build hd.js --compile --outfile hd + run: ~/bin/bun build hd.js --compile --outfile hd working-directory: ./hd/javascript - name: Build host program run: ./test_maker .test/hd.test From 4ddd903d5da861c469377f3fa87b758594d312a9 Mon Sep 17 00:00:00 2001 From: Seunghoon Lee Date: Wed, 20 May 2026 12:09:40 +0900 Subject: [PATCH 3/6] buildpack-deps --- .github/workflows/c.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/c.yml b/.github/workflows/c.yml index b69a0f2..2a8d8e4 100644 --- a/.github/workflows/c.yml +++ b/.github/workflows/c.yml @@ -10,7 +10,7 @@ jobs: name: Run test runs-on: self-hosted container: - image: ubuntu:22.04 + image: buildpack-deps:jammy defaults: run: working-directory: ./test From 7b26661b893477245530a03741cdcd5214510a24 Mon Sep 17 00:00:00 2001 From: Seunghoon Lee Date: Wed, 20 May 2026 12:13:20 +0900 Subject: [PATCH 4/6] [CI] Replace Docker image with buildpack-deps:jammy. --- .github/workflows/cpp.yml | 2 +- .github/workflows/haskell.yml | 2 +- .github/workflows/javascript.yml | 2 +- .github/workflows/python.yml | 2 +- .github/workflows/rust.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index 9a7c824..f5daf9a 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -10,7 +10,7 @@ jobs: name: Run test runs-on: self-hosted container: - image: ubuntu:22.04 + image: buildpack-deps:jammy defaults: run: working-directory: ./test diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index 0cbedf4..557217b 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -10,7 +10,7 @@ jobs: name: Run test runs-on: self-hosted container: - image: ubuntu:22.04 + image: buildpack-deps:jammy defaults: run: working-directory: ./test diff --git a/.github/workflows/javascript.yml b/.github/workflows/javascript.yml index 346597e..279790b 100644 --- a/.github/workflows/javascript.yml +++ b/.github/workflows/javascript.yml @@ -10,7 +10,7 @@ jobs: name: Run test runs-on: self-hosted container: - image: ubuntu:22.04 + image: buildpack-deps:jammy defaults: run: working-directory: ./test diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 5a0dbf1..f587328 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -10,7 +10,7 @@ jobs: name: Run test runs-on: self-hosted container: - image: ubuntu:22.04 + image: buildpack-deps:jammy defaults: run: working-directory: ./test diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 5e289d9..805c813 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -10,7 +10,7 @@ jobs: name: Run test runs-on: self-hosted container: - image: ubuntu:22.04 + image: buildpack-deps:jammy defaults: run: working-directory: ./test From cceb8bb032788dc3c21c8189c740f3be2b3acb4b Mon Sep 17 00:00:00 2001 From: Seunghoon Lee Date: Wed, 20 May 2026 12:18:43 +0900 Subject: [PATCH 5/6] [CI] Use specialized image for Haskell CI. --- .github/workflows/haskell.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml index 557217b..b3da9d0 100644 --- a/.github/workflows/haskell.yml +++ b/.github/workflows/haskell.yml @@ -10,7 +10,7 @@ jobs: name: Run test runs-on: self-hosted container: - image: buildpack-deps:jammy + image: haskell:9 defaults: run: working-directory: ./test From 8470b8dcd3a73aa934067eb5bb84c3703e6636d0 Mon Sep 17 00:00:00 2001 From: Seunghoon Lee Date: Wed, 20 May 2026 12:21:31 +0900 Subject: [PATCH 6/6] [CI] Install Bun via official action. --- .github/workflows/javascript.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/javascript.yml b/.github/workflows/javascript.yml index 279790b..66acca4 100644 --- a/.github/workflows/javascript.yml +++ b/.github/workflows/javascript.yml @@ -16,8 +16,9 @@ jobs: working-directory: ./test steps: - name: Install Bun - run: curl -fsSL https://bun.sh/install | bash - working-directory: ./ + uses: oven-sh/setup-bun@v1 + with: + bun-version: latest - uses: actions/checkout@v4 with: submodules: true @@ -25,7 +26,7 @@ jobs: run: gcc -o test_maker test_maker.c - name: Build object program - run: ~/bin/bun build hd.js --compile --outfile hd + run: bun build hd.js --compile --outfile hd working-directory: ./hd/javascript - name: Build host program run: ./test_maker .test/hd.test