From e5f29253071b185da68d7a70859c1c6ae4298746 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Wed, 19 Feb 2025 18:02:33 -0500 Subject: [PATCH 1/5] First draft of build action --- .forgejo/workflows/build.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .forgejo/workflows/build.yaml diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..758c664 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,8 @@ +on: [push, pull_request] +jobs: + build: + runs-on: docker + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + - run: yarn build From 63423f21107a00353781db05b54e28d703c6c958 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Wed, 19 Feb 2025 18:28:57 -0500 Subject: [PATCH 2/5] Make render script use Bash best practices --- package.json | 2 +- render.sh => render.bash | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) rename render.sh => render.bash (76%) diff --git a/package.json b/package.json index d1522ac..7c92ec1 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "build": "./render.sh", + "build": "./render.bash", "build:targets": "yarn build:client && yarn build:server", "build:client": "tsc -b && vite build --outDir dist/client", "build:server": "tsc -b && vite build --outDir dist/server --ssr src/entry-server.tsx", diff --git a/render.sh b/render.bash similarity index 76% rename from render.sh rename to render.bash index f32fa9f..468927a 100755 --- a/render.sh +++ b/render.bash @@ -1,8 +1,16 @@ -#!/bin/sh +#!/bin/env bash + +set -o errexit +set -o nounset +set -o pipefail +set -o xtrace + yarn "build:targets" PROD='dist/prod' -rm -r "$PROD" +if [[ -d "$PROD" ]]; then + rm -r "$PROD" +fi mkdir -p "$PROD" echo 'Rendering webpage...' From 6ae65fdb45369d34b6d7b5f27de6f6858a267a90 Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Wed, 19 Feb 2025 18:29:33 -0500 Subject: [PATCH 3/5] Make action install dependencies before trying to build --- .forgejo/workflows/build.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 758c664..ccf40a9 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -3,6 +3,11 @@ jobs: build: runs-on: docker steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - - run: yarn build + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Node + uses: actions/setup-node@v4 + - name: Install dependencies + run: yarn install + - name: Build + run: yarn build From 66756b060570e98b4800dbf1698c976182a4b0ba Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Wed, 19 Feb 2025 18:39:23 -0500 Subject: [PATCH 4/5] Rename render.bash to use .sh extension Using .bash appears to have broken the call from Yarn in the CI? --- package.json | 2 +- render.bash => render.sh | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) rename render.bash => render.sh (99%) diff --git a/package.json b/package.json index 7c92ec1..d1522ac 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "build": "./render.bash", + "build": "./render.sh", "build:targets": "yarn build:client && yarn build:server", "build:client": "tsc -b && vite build --outDir dist/client", "build:server": "tsc -b && vite build --outDir dist/server --ssr src/entry-server.tsx", diff --git a/render.bash b/render.sh similarity index 99% rename from render.bash rename to render.sh index 468927a..36ece42 100755 --- a/render.bash +++ b/render.sh @@ -1,5 +1,4 @@ #!/bin/env bash - set -o errexit set -o nounset set -o pipefail From 8d180285a98d48b74ebce7a48925ae6a3047fe9f Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Wed, 19 Feb 2025 18:43:25 -0500 Subject: [PATCH 5/5] Change Bash directive style Oops, it wasn't that it wasn't finding the file, it was that the first line failed. --- package.json | 2 +- render.sh => render.bash | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename render.sh => render.bash (96%) diff --git a/package.json b/package.json index d1522ac..7c92ec1 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "build": "./render.sh", + "build": "./render.bash", "build:targets": "yarn build:client && yarn build:server", "build:client": "tsc -b && vite build --outDir dist/client", "build:server": "tsc -b && vite build --outDir dist/server --ssr src/entry-server.tsx", diff --git a/render.sh b/render.bash similarity index 96% rename from render.sh rename to render.bash index 36ece42..1927942 100755 --- a/render.sh +++ b/render.bash @@ -1,4 +1,4 @@ -#!/bin/env bash +#!/bin/bash set -o errexit set -o nounset set -o pipefail