name: Build Docker Image 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 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: 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: Build Docker image run: | docker build -t next-terminal:${{ steps.version.outputs.VERSION }} . - name: Save Docker image run: | docker save next-terminal:${{ steps.version.outputs.VERSION }} | gzip > next-terminal-${{ steps.version.outputs.VERSION }}.tar.gz - name: Upload artifact uses: actions/upload-artifact@v4 with: name: next-terminal-docker-${{ steps.version.outputs.VERSION }} path: next-terminal-${{ steps.version.outputs.VERSION }}.tar.gz retention-days: 7