name: Build Docker Image Artifact on: push: branches: - master workflow_dispatch: inputs: tag: description: '镜像标签版本' required: false default: 'latest' jobs: build: name: Build Docker Image runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: '1.22' - 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 binary run: | go mod tidy CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags '-s -w' -o next-terminal . - name: Get version id: version run: | if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then echo "VERSION=${{ inputs.tag }}" >> $GITHUB_OUTPUT else echo "VERSION=$(date +%Y%m%d-%H%M%S)" >> $GITHUB_OUTPUT fi - name: Create package run: | mkdir -p next-terminal cp next-terminal next-terminal/ cp config.yml.example next-terminal/config.yml cp LICENSE next-terminal/ tar zcvf next-terminal-${{ steps.version.outputs.VERSION }}-linux-amd64.tar.gz next-terminal/ - name: Upload artifact uses: actions/upload-artifact@v4 with: name: next-terminal-${{ steps.version.outputs.VERSION }}-linux-amd64 path: next-terminal-${{ steps.version.outputs.VERSION }}-linux-amd64.tar.gz retention-days: 7