支持构建目录 context,构建改用 docker-build-push

This commit is contained in:
2026-10-20 21:45:48 +08:00
parent 92f110c5e1
commit 7d601393d1
+17 -6
View File
@@ -1,6 +1,11 @@
# action.yml # action.yml
name: "build docker image and push to code" name: "build docker image and push to code"
description: "build docker image and push to simcu code" description: "build docker image and push to simcu code"
inputs:
context:
description: "构建目录(相对仓库根目录,默认 .)。例如前端在 vue 目录下时填 vue"
required: false
default: "."
runs: runs:
using: "composite" using: "composite"
steps: steps:
@@ -8,11 +13,14 @@ runs:
with: with:
entrypoint: "/bin/bash" entrypoint: "/bin/bash"
args: | args: |
-c "npm pkg set version=${{ github.ref_name }} && \ -c 'cd "${{ inputs.context }}" && \
npm pkg set version=${{ github.ref_name }} && \
npm ci && \ npm ci && \
npm run build-only" npm run build-only'
# 项目根目录有 nginx.conf 就用项目自己的(例如要开 COOP/COEP 之类的自定义配置), # Dockerfile 放在仓库根目录(docker build -f 是相对仓库根目录解析的),
# nginx.conf 放进构建目录(Dockerfile 里的 COPY 是相对构建上下文的)。
# 构建目录有 nginx.conf 就用项目自己的(例如要开 COOP/COEP 之类的自定义配置),
# 没有才用本 action 自带的通用配置 # 没有才用本 action 自带的通用配置
- uses: docker://ubuntu:latest - uses: docker://ubuntu:latest
with: with:
@@ -20,13 +28,16 @@ runs:
args: | args: |
-c ' -c '
set -e set -e
cp "${{ github.action_path }}/vue.Dockerfile" ./Dockerfile
cd "${{ inputs.context }}"
if [ -f ./nginx.conf ]; then if [ -f ./nginx.conf ]; then
echo "nginx.conf:用项目根目录的" echo "nginx.conf:用项目自带的"
else else
cp "${{ github.action_path }}/nginx.conf" ./nginx.conf cp "${{ github.action_path }}/nginx.conf" ./nginx.conf
echo "nginx.conf:用 action 自带的" echo "nginx.conf:用 action 内置的"
fi fi
cp "${{ github.action_path }}/vue.Dockerfile" ./Dockerfile
' '
- uses: actions/docker-build-push@main - uses: actions/docker-build-push@main
with:
context: ${{ inputs.context }}