# action.yml name: 'build docker image and push to code' description: 'build docker image and push to simcu code' inputs: dockerfile: description: 'if set, will use this to build' required: false default: '' runs: using: 'composite' steps: - name: build .net app uses: docker://mcr.microsoft.com/dotnet/sdk:8.0 with: args: dotnet publish -r linux-x64 -c Release --self-contained -o dist -p:AssemblyName=App - name: create dockerfile if: ${{ inputs.dockerfile == '' }} uses: docker://ubuntu:latest with: entrypoint: "/bin/bash" args: | -c 'echo "FROM mcr.microsoft.com/dotnet/runtime:8.0" > Dockerfile && \ echo "ENV TZ Asia/Shanghai" >> Dockerfile && \ echo "COPY dist /home" >> Dockerfile && \ echo "WORKDIR /home" >> Dockerfile && \ echo "ENTRYPOINT [\"./App\"]" >> Dockerfile && \ echo "已经构建完DOCKERFILE了" && \ cat Dockerfile' - name: build docker image use custom dockerfile uses: docker://docker:git with: entrypoint: "/bin/sh" args: | -c 'cat ${{ inputs.dockerfile || 'Dockerfile' }} && docker build -t ${{vars.DOCKER_REGISTRY}}/${{github.repository}}:${{ github.ref_name }} -f ${{ inputs.dockerfile || 'Dockerfile' }} . && \ echo ${{vars.DOCKER_REGISTRY}}/${{github.repository}}:${{ github.ref_name }}已经构建完了 && \ docker login ${{vars.DOCKER_REGISTRY}} -u ${{vars.DOCKER_USER}} -p ${{vars.DOCKER_PASS}} && \ docker push ${{vars.DOCKER_REGISTRY}}/${{github.repository}}:${{ github.ref_name }} && \ echo ${{vars.DOCKER_REGISTRY}}/${{github.repository}}:${{ github.ref_name }}推送成功'