fix ci: docker build
This commit is contained in:
parent
af88766124
commit
3a62b84c52
18
.github/workflows/build.yaml
vendored
18
.github/workflows/build.yaml
vendored
@ -28,29 +28,29 @@ jobs:
|
||||
with:
|
||||
version: v1.60
|
||||
- name: Build
|
||||
run: make -j8 all && tree dist
|
||||
run: make -j8 all && tree bin
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: dist
|
||||
name: builds-${{ github.sha }}
|
||||
path: |
|
||||
dist/**/*.zip
|
||||
dist/**/*.tar.gz
|
||||
dist/**/*.sha256sum
|
||||
bin/*.zip
|
||||
bin/*.tar.gz
|
||||
bin/*.sha256sum
|
||||
- name: Upload Release Asset
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
run: |
|
||||
gh release create ${GIT_TAG} $(find dist/ -name "*.zip*" -o -name "*.tar.gz*")
|
||||
gh release create ${GIT_TAG} bin/*.zip bin/*.tar.gz bin/*.sha256sum
|
||||
env:
|
||||
GIT_TAG: ${{ github.ref_name }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: docker/setup-buildx-action@v3
|
||||
- uses: docker/login-action@v3
|
||||
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5
|
||||
- uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- uses: docker/build-push-action@v6
|
||||
- uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355
|
||||
with:
|
||||
context: .
|
||||
file: ./Dockerfile
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
||||
.DS_Store
|
||||
logs/
|
||||
dist/
|
||||
bin/
|
13
Dockerfile
Normal file
13
Dockerfile
Normal file
@ -0,0 +1,13 @@
|
||||
FROM --platform=$BUILDPLATFORM alpine:3.21 AS builder
|
||||
RUN apk add --no-cache tzdata ca-certificates
|
||||
|
||||
FROM alpine:3.21
|
||||
ARG TARGETPLATFORM
|
||||
COPY bin/arch/${TARGETPLATFORM}/ai-agent-web /app/ai-agent-web
|
||||
COPY agents /app/agents
|
||||
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
|
||||
COPY --from=builder /usr/share/ca-certificates /usr/share/ca-certificates
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||
WORKDIR /app
|
||||
EXPOSE 7120
|
||||
CMD ["/app/ai-agent-web"]
|
19
Makefile
19
Makefile
@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env make -f
|
||||
DIST_DIRECTORY = ./dist
|
||||
AGENTS_DIR = agents
|
||||
DIST_DIRECTORY = ./bin
|
||||
DIST_APPNAME = ai-agent
|
||||
DIST_EXENAME = ai-agent-web
|
||||
BUILDINFO_CLASS = codelab/ai-agent/internal/conf
|
||||
BUILDINFO_VERSION := $(shell git describe --tags 2>/dev/null || echo "git/$(shell git rev-parse --short HEAD 2>/dev/null || echo 'none')")
|
||||
@ -51,16 +53,19 @@ clean:
|
||||
all: clean install $(CROSS_BUILD_TRIPLES)
|
||||
$(CROSS_BUILD_TRIPLES): GOOS = $(word 1,$(subst /, ,$@))
|
||||
$(CROSS_BUILD_TRIPLES): GOARCH = $(word 2,$(subst /, ,$@))
|
||||
$(CROSS_BUILD_TRIPLES): CROSS_DIST_DIRECTORY = $(DIST_DIRECTORY)/release/$@
|
||||
$(CROSS_BUILD_TRIPLES): CROSS_DIST_DIRNAME = $(DIST_APPNAME)-$(subst /,.,$(BUILDINFO_VERSION)-$(GOOS)-$(GOARCH))
|
||||
$(CROSS_BUILD_TRIPLES): CROSS_DIST_EXENAME = $(DIST_EXENAME)$(if $(filter $(GOOS),windows),.exe,)
|
||||
$(CROSS_BUILD_TRIPLES): CROSS_DIST_ARCNAME = $(DIST_EXENAME)-$(subst /,.,$(BUILDINFO_VERSION)-$(GOOS)-$(GOARCH)).$(if $(filter $(GOOS),windows),zip,tar.gz)
|
||||
$(CROSS_BUILD_TRIPLES): CROSS_DIST_ARCNAME = $(CROSS_DIST_DIRNAME).$(if $(filter $(GOOS),windows),zip,tar.gz)
|
||||
$(CROSS_BUILD_TRIPLES):
|
||||
$(MAKE) build GOOS=$(GOOS) GOARCH=$(GOARCH) \
|
||||
DIST_DIRECTORY=$(CROSS_DIST_DIRECTORY)/bin \
|
||||
DIST_DIRECTORY=$(DIST_DIRECTORY)/$(CROSS_DIST_DIRNAME) \
|
||||
DIST_EXENAME=$(CROSS_DIST_EXENAME) && \
|
||||
cp -r $(AGENTS_DIR) $(DIST_DIRECTORY)/$(CROSS_DIST_DIRNAME)/ && \
|
||||
mkdir -p $(DIST_DIRECTORY)/arch/$(GOOS)/$(GOARCH) && \
|
||||
cp $(DIST_DIRECTORY)/$(CROSS_DIST_DIRNAME)/$(CROSS_DIST_EXENAME) $(DIST_DIRECTORY)/arch/$(GOOS)/$(GOARCH)/$(CROSS_DIST_EXENAME) && \
|
||||
if [ "$(GOOS)" = "windows" ]; then \
|
||||
zip -j $(CROSS_DIST_DIRECTORY)/$(CROSS_DIST_ARCNAME) $(CROSS_DIST_DIRECTORY)/bin/$(CROSS_DIST_EXENAME); \
|
||||
cd $(DIST_DIRECTORY) && zip -r $(CROSS_DIST_ARCNAME) $(CROSS_DIST_DIRNAME) && cd -; \
|
||||
else \
|
||||
tar -cvzf $(CROSS_DIST_DIRECTORY)/$(CROSS_DIST_ARCNAME) -C $(CROSS_DIST_DIRECTORY)/bin $(CROSS_DIST_EXENAME); \
|
||||
tar -cvzf $(DIST_DIRECTORY)/$(CROSS_DIST_ARCNAME) -C $(DIST_DIRECTORY) $(CROSS_DIST_DIRNAME); \
|
||||
fi && \
|
||||
sh -c "cd $(CROSS_DIST_DIRECTORY) && sha256sum $(CROSS_DIST_ARCNAME) > $(CROSS_DIST_ARCNAME).sha256sum";
|
||||
sh -c "cd $(DIST_DIRECTORY) && sha256sum $(CROSS_DIST_ARCNAME) > $(CROSS_DIST_ARCNAME).sha256sum";
|
Loading…
x
Reference in New Issue
Block a user