diff --git a/.github/workflows/build-docker-artifact.yml b/.github/workflows/build-docker-artifact.yml index 017c3d011..57c57c11b 100644 --- a/.github/workflows/build-docker-artifact.yml +++ b/.github/workflows/build-docker-artifact.yml @@ -16,10 +16,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Docker Setup Buildx - uses: docker/setup-buildx-action@v3 + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.22' - - name: node Setup + - name: Setup Node uses: actions/setup-node@v4 with: node-version: '20' @@ -32,17 +34,23 @@ jobs: yarn build cp -r build ../server/resource/ - - name: Build Docker image + - name: Build binary run: | - docker build -t next-terminal:${{ github.event.inputs.tag }} . + cd server + go mod tidy + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags '-s -w' -o next-terminal ../main.go - - name: Export Docker image + - name: Create package run: | - docker save next-terminal:${{ github.event.inputs.tag }} | gzip > next-terminal-${{ github.event.inputs.tag }}.tar.gz + mkdir -p next-terminal + cp server/next-terminal next-terminal/ + cp config.yml.example next-terminal/config.yml + cp LICENSE next-terminal/ + tar zcvf next-terminal-${{ inputs.tag }}-linux-amd64.tar.gz next-terminal/ - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: next-terminal-docker-${{ github.event.inputs.tag }} - path: next-terminal-${{ github.event.inputs.tag }}.tar.gz + name: next-terminal-${{ inputs.tag }}-linux-amd64 + path: next-terminal-${{ inputs.tag }}-linux-amd64.tar.gz retention-days: 7 diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml new file mode 100644 index 000000000..db9554f2f --- /dev/null +++ b/.github/workflows/build-docker-image.yml @@ -0,0 +1,45 @@ +name: Build Docker Image + +on: + workflow_dispatch: + inputs: + tag: + description: '镜像标签版本' + required: true + default: 'latest' + +jobs: + build: + name: Build Docker Image + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Build web + run: | + cd web + npm install --global yarn + yarn + yarn build + cp -r build ../server/resource/ + + - name: Build Docker image + run: | + docker build -t next-terminal:${{ inputs.tag }} . + + - name: Save Docker image + run: | + docker save next-terminal:${{ inputs.tag }} | gzip > next-terminal-${{ inputs.tag }}.tar.gz + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: next-terminal-docker-${{ inputs.tag }} + path: next-terminal-${{ inputs.tag }}.tar.gz + retention-days: 7