cleanup / move files
This commit is contained in:
parent
4e563ced3d
commit
a975cff0d7
52 changed files with 106 additions and 9 deletions
46
.github/workflows/release-todo-example.yml
vendored
Normal file
46
.github/workflows/release-todo-example.yml
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
name: Build and Deploy htmgo.dev todo example
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Trigger on manual workflow_dispatch
|
||||
push:
|
||||
branches:
|
||||
- master # Trigger on pushes to master
|
||||
paths:
|
||||
- 'examples/todo-list/**' # Trigger only if files in this directory change
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Get short commit hash
|
||||
id: vars
|
||||
run: echo "::set-output name=short_sha::$(echo $GITHUB_SHA | cut -c1-7)"
|
||||
|
||||
- name: Build Docker image
|
||||
run: |
|
||||
cd ./examples/todo-list && docker build -t ghcr.io/${{ github.repository_owner }}/htmgo-todo-example:${{ steps.vars.outputs.short_sha }} .
|
||||
|
||||
- name: Tag as latest Docker image
|
||||
run: |
|
||||
docker tag ghcr.io/${{ github.repository_owner }}/htmgo-todo-example:${{ steps.vars.outputs.short_sha }} ghcr.io/${{ github.repository_owner }}/htmgo-todo-example:latest
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
run: echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
|
||||
|
||||
- name: Push Docker image
|
||||
run: |
|
||||
docker push ghcr.io/${{ github.repository_owner }}/htmgo-todo-example:latest
|
||||
10
examples/todo-list/.dockerignore
Normal file
10
examples/todo-list/.dockerignore
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# Project exclude paths
|
||||
/tmp/
|
||||
node_modules/
|
||||
dist/
|
||||
js/dist
|
||||
js/node_modules
|
||||
go.work
|
||||
go.work.sum
|
||||
.idea
|
||||
!framework/assets/dist
|
||||
41
examples/todo-list/Dockerfile
Normal file
41
examples/todo-list/Dockerfile
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Stage 1: Build the Go binary
|
||||
FROM golang:1.23-alpine AS builder
|
||||
|
||||
RUN apk update
|
||||
RUN apk add git
|
||||
RUN apk add curl
|
||||
|
||||
# Set the working directory inside the container
|
||||
WORKDIR /app
|
||||
|
||||
# Copy go.mod and go.sum files
|
||||
COPY go.mod go.sum ./
|
||||
|
||||
# Download and cache the Go modules
|
||||
RUN go mod download
|
||||
|
||||
# Always download the latest version of the framework
|
||||
RUN go get github.com/maddalax/htmgo/framework@latest
|
||||
|
||||
# Copy the source code into the container
|
||||
COPY . .
|
||||
|
||||
# Build the Go binary for Linux
|
||||
RUN GOPRIVATE=github.com/maddalax LOG_LEVEL=debug go run github.com/maddalax/htmgo/cli/htmgo@latest build
|
||||
|
||||
|
||||
# Stage 2: Create the smallest possible image
|
||||
FROM gcr.io/distroless/base-debian11
|
||||
|
||||
# Set the working directory inside the container
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the Go binary from the builder stage
|
||||
COPY --from=builder /app/dist .
|
||||
|
||||
# Expose the necessary port (replace with your server port)
|
||||
EXPOSE 3000
|
||||
|
||||
|
||||
# Command to run the binary
|
||||
CMD ["./todolist"]
|
||||
|
|
@ -96,7 +96,7 @@ func TriggerChildren() Ren {
|
|||
return HxExtension("trigger-children")
|
||||
}
|
||||
|
||||
func TriggerString(triggers ...string) *AttributeMap {
|
||||
func HxTriggerString(triggers ...string) *AttributeMap {
|
||||
trigger := hx.NewStringTrigger(strings.Join(triggers, ", "))
|
||||
return Attribute(hx.TriggerAttr, trigger.ToString())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ func (m *AttributeMap) Render(context *RenderContext) {
|
|||
func (l *LifeCycle) fromAttributeMap(event string, key string, value string, context *RenderContext) {
|
||||
|
||||
if key == hx.GetAttr || key == hx.PatchAttr || key == hx.PostAttr {
|
||||
TriggerString(hx.ToHtmxTriggerName(event)).Render(context)
|
||||
HxTriggerString(hx.ToHtmxTriggerName(event)).Render(context)
|
||||
}
|
||||
|
||||
Attribute(key, value).Render(context)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package h
|
|||
import "github.com/maddalax/htmgo/framework/hx"
|
||||
|
||||
func Get(path string, trigger ...string) *AttributeMap {
|
||||
return AttributeList(Attribute(hx.GetAttr, path), TriggerString(trigger...))
|
||||
return AttributeList(Attribute(hx.GetAttr, path), HxTriggerString(trigger...))
|
||||
}
|
||||
|
||||
func GetPartial(partial PartialFunc, trigger ...string) *AttributeMap {
|
||||
|
|
@ -27,7 +27,7 @@ func PostPartialWithQs(partial PartialFunc, qs *Qs, trigger ...string) *Attribut
|
|||
}
|
||||
|
||||
func Post(url string, trigger ...string) *AttributeMap {
|
||||
return AttributeList(Attribute(hx.PostAttr, url), TriggerString(trigger...))
|
||||
return AttributeList(Attribute(hx.PostAttr, url), HxTriggerString(trigger...))
|
||||
}
|
||||
|
||||
func PostWithQs(url string, qs *Qs, trigger string) *AttributeMap {
|
||||
|
|
|
|||
Loading…
Reference in a new issue