diff --git a/action.yml b/action.yml index b1ca91c..fdb16cf 100644 --- a/action.yml +++ b/action.yml @@ -1,6 +1,11 @@ # action.yml name: "build docker image and push to code" description: "build docker image and push to simcu code" +inputs: + context: + description: "构建目录(相对仓库根目录,默认 .)。例如前端在 vue 目录下时填 vue" + required: false + default: "." runs: using: "composite" steps: @@ -8,11 +13,14 @@ runs: with: entrypoint: "/bin/bash" args: | - -c "npm pkg set version=${{ github.ref_name }} && \ + -c 'cd "${{ inputs.context }}" && \ + npm pkg set version=${{ github.ref_name }} && \ 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 自带的通用配置 - uses: docker://ubuntu:latest with: @@ -20,13 +28,16 @@ runs: args: | -c ' set -e + cp "${{ github.action_path }}/vue.Dockerfile" ./Dockerfile + cd "${{ inputs.context }}" if [ -f ./nginx.conf ]; then - echo "nginx.conf:用项目根目录的" + echo "nginx.conf:用项目自带的" else cp "${{ github.action_path }}/nginx.conf" ./nginx.conf - echo "nginx.conf:用 action 自带的" + echo "nginx.conf:用 action 内置的" fi - cp "${{ github.action_path }}/vue.Dockerfile" ./Dockerfile ' - uses: actions/docker-build-push@main + with: + context: ${{ inputs.context }}