65 lines
1.5 KiB
YAML
65 lines
1.5 KiB
YAML
name: Build and Verify Installer Works
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
# Step 1: Checkout the repository
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
# Step 2: Set up Go
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: '>=1.20'
|
|
|
|
# Step 3: Install htmgo CLI
|
|
- name: Install htmgo CLI
|
|
run: |
|
|
GOPRIVATE=github.com/maddalax GOPROXY=direct go install github.com/maddalax/htmgo/cli/htmgo@latest
|
|
|
|
# Step 4: Generate template using htmgo
|
|
- name: Generate myapp template
|
|
run: |
|
|
htmgo template myapp
|
|
|
|
# Step 5: Build the app
|
|
- name: Build myapp
|
|
run: |
|
|
cd myapp
|
|
htmgo build
|
|
|
|
# Step 6: Verify that the dist directory exists
|
|
- name: Verify build output
|
|
run: |
|
|
if [ ! -d "./myapp/dist" ]; then
|
|
echo "Build directory ./dist/myapp does not exist"
|
|
exit 1
|
|
fi
|
|
shell: bash
|
|
|
|
|
|
# Step 7: Start the server
|
|
- name: Start myapp server
|
|
run: |
|
|
nohup ./myapp/dist/myapp &
|
|
|
|
# Step 8: Wait for server to start
|
|
- name: Wait for server startup
|
|
run: sleep 5
|
|
|
|
# Step 9: Send curl request to verify the server is running
|
|
- name: Test server with curl
|
|
run: |
|
|
curl --fail http://localhost:3000 || exit 1
|