From 13963c531ef2ae70105d22c9bee4cd651e1cfc4e Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Tue, 14 Jul 2026 21:37:16 +0800 Subject: [PATCH 01/13] Add first CI/CD workflow --- .github/workflows/deploy.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/deploy.yaml diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 0000000..8a4e6b9 --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,14 @@ +name: deploy + +on: [push] + +jobs: + +say-hello + runs-on: ubuntu-latest + +steps: + + - run: sleep 30 + - run: echo "Ship it!" + From 63dc4b4e495c53e849f57f255e55bea00806321d Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Tue, 14 Jul 2026 21:39:28 +0800 Subject: [PATCH 02/13] Fix workflow YAML syntax --- .github/workflows/deploy.yaml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 8a4e6b9..208700b 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -3,12 +3,9 @@ name: deploy on: [push] jobs: + say-hello: + runs-on: ubuntu-latest -say-hello - runs-on: ubuntu-latest - -steps: - - - run: sleep 30 - - run: echo "Ship it!" - + steps: + - run: sleep 30 + - run: echo "Ship it!" From 2e6f278287af0d00394a852527a5f99044f4353a Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Tue, 14 Jul 2026 22:14:46 +0800 Subject: [PATCH 03/13] Configure workflow for pull requests --- .github/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 208700b..9928479 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -1,6 +1,6 @@ name: deploy -on: [push] +on: [push, pull_request] jobs: say-hello: From c7e236ddc9ffbb7a33391addcf1a4951b1d1f32f Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Tue, 14 Jul 2026 22:37:48 +0800 Subject: [PATCH 04/13] Add GitHub Pages build and deployment --- .github/workflows/deploy.yaml | 51 ++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 9928479..c055eb1 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -1,11 +1,54 @@ name: deploy -on: [push, pull_request] +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false jobs: - say-hello: + build-and-deploy: runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + defaults: + run: + working-directory: launchpad + steps: - - run: sleep 30 - - run: echo "Ship it!" + - name: Checkout repository + uses: actions/checkout@v7 + + - name: Setup Node.js + uses: actions/setup-node@v7 + with: + node-version: 24 + cache: npm + cache-dependency-path: launchpad/package-lock.json + + - name: Install dependencies + run: npm ci + + - name: Build launchpad + run: npm run build + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v5 + with: + path: launchpad/dist + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 From 29d63af5a3d5b9daacffe415a1e48a56674da312 Mon Sep 17 00:00:00 2001 From: hisyamjaapa-devops Date: Thu, 16 Jul 2026 16:01:37 +0800 Subject: [PATCH 05/13] Amali5: add GitHub Pages Permission --- .github/workflows/deploy.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index c055eb1..9b4dc96 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -6,10 +6,11 @@ on: - main workflow_dispatch: +# Amali 5: permission untuk deploy GitHub Pages permissions: - contents: read pages: write id-token: write + contents: read concurrency: group: pages From 8cc740cbb88f4a310e9282eebee8903a5d3ba355 Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Thu, 16 Jul 2026 22:05:40 +0800 Subject: [PATCH 06/13] pre-flight test --- .github/workflows/deploy.yaml | 64 +++++++++++++++++------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index c055eb1..924ec88 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -1,10 +1,7 @@ -name: deploy - +name: Ship It on: push: - branches: - - main - workflow_dispatch: + branches: [main] permissions: contents: read @@ -13,42 +10,45 @@ permissions: concurrency: group: pages - cancel-in-progress: false + cancel-in-progress: true + +# The ship app lives in launchpad/ in the learner fork; run every step there. +defaults: + run: + working-directory: launchpad jobs: - build-and-deploy: + test: runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: launchpad/package-lock.json + - run: npm ci + - run: npm test # node scripts/preflight.mjs — a bad ship.config.json ABORTS here + deploy: + needs: test # deploy only runs if the pre-flight gate is green + runs-on: ubuntu-latest environment: name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - defaults: - run: - working-directory: launchpad - + url: ${{ steps.deploy.outputs.page_url }} steps: - - name: Checkout repository - uses: actions/checkout@v7 - - - name: Setup Node.js - uses: actions/setup-node@v7 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: 24 + node-version: 20 cache: npm cache-dependency-path: launchpad/package-lock.json - - - name: Install dependencies - run: npm ci - - - name: Build launchpad - run: npm run build - - - name: Upload Pages artifact - uses: actions/upload-pages-artifact@v5 + - run: npm ci + - run: npm run build + env: + VITE_CALLSIGN: ${{ github.actor }} + - uses: actions/upload-pages-artifact@v3 with: path: launchpad/dist - - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v5 + - id: deploy + uses: actions/deploy-pages@v4 From a9fcecf0517945d401e2ac075cbda0b07f20d81b Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Thu, 16 Jul 2026 23:00:13 +0800 Subject: [PATCH 07/13] empty name --- launchpad/ship.config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launchpad/ship.config.json b/launchpad/ship.config.json index 0221b94..ecf7a67 100644 --- a/launchpad/ship.config.json +++ b/launchpad/ship.config.json @@ -1,5 +1,5 @@ { - "shipName": "Nebula Runner", + "shipName": "", "color": "22d3ee", "shipModel": "fighter", "emblem": "comet" From 5a36bbaab6c13183c49625c2e0f202afff84e43c Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Thu, 16 Jul 2026 23:18:37 +0800 Subject: [PATCH 08/13] run tests on pull requests --- .github/workflows/deploy.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 924ec88..e5c6130 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -2,6 +2,8 @@ name: Ship It on: push: branches: [main] + pull_request: + branches: [main] permissions: contents: read From 70a6ee138d37cbba77745a051900ad40f4c5d742 Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Sun, 19 Jul 2026 00:17:59 +0800 Subject: [PATCH 09/13] baiki nama ship --- launchpad/ship.config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/launchpad/ship.config.json b/launchpad/ship.config.json index ecf7a67..34b4809 100644 --- a/launchpad/ship.config.json +++ b/launchpad/ship.config.json @@ -1,6 +1,6 @@ { - "shipName": "", - "color": "22d3ee", + "shipName": "Nebula Runner", + "color": "#22d3ee", "shipModel": "fighter", "emblem": "comet" } From 8d3822c421906827e67971461b18f004c461929c Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Sun, 19 Jul 2026 00:25:54 +0800 Subject: [PATCH 10/13] deploy only from main --- .github/workflows/deploy.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index e5c6130..a98a61f 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -33,6 +33,7 @@ jobs: - run: npm test # node scripts/preflight.mjs — a bad ship.config.json ABORTS here deploy: + if: github.event_name == 'push' && github.ref == 'refs/heads/main' needs: test # deploy only runs if the pre-flight gate is green runs-on: ubuntu-latest environment: From 75c535a9411199a9931b308e8179fe4bf28d1eda Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Sun, 19 Jul 2026 01:21:43 +0800 Subject: [PATCH 11/13] separate test job --- .github/workflows/deploy.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 6b0789d..ffbd170 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -24,14 +24,14 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 with: node-version: 20 cache: npm cache-dependency-path: launchpad/package-lock.json - - run: npm ci - - run: npm test # node scripts/preflight.mjs — a bad ship.config.json ABORTS here + - run: npm clean-install + - run: npm run test # node scripts/preflight.mjs — a bad ship.config.json ABORTS here deploy: if: github.event_name == 'push' && github.ref == 'refs/heads/main' From bb8e8630d04ccde110a466c11541131a8c1aa66d Mon Sep 17 00:00:00 2001 From: Muhamad Hisyam Date: Sun, 19 Jul 2026 14:56:25 +0800 Subject: [PATCH 12/13] pecah job test + deploy --- .github/workflows/deploy.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index ffbd170..c027ccf 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -41,18 +41,18 @@ jobs: name: github-pages url: ${{ steps.deploy.outputs.page_url }} steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 with: node-version: 20 cache: npm cache-dependency-path: launchpad/package-lock.json - - run: npm ci + - run: npm clean-install - run: npm run build env: VITE_CALLSIGN: ${{ github.actor }} - - uses: actions/upload-pages-artifact@v3 + - uses: actions/upload-pages-artifact@v5 with: path: launchpad/dist - id: deploy - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 From 387c09cab0f86d52d945673bfce6aae6e18f10d9 Mon Sep 17 00:00:00 2001 From: hisyamjaapa-devops Date: Tue, 21 Jul 2026 22:01:00 +0800 Subject: [PATCH 13/13] Add report workflow --- .github/workflows/main.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..ea44f08 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,18 @@ +name: Generate Report + +on: + workflow_dispatch: + +jobs: + report: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run report + run: bash scripts/report.sh + env: + BOARD_URL: ${{ vars.BOARD_URL }} + SHIPIT_TOKEN: ${{ secrets.SHIPIT_TOKEN }}