name: Build and Push Docker Image on: push: branches: - main # 监听 main 分支的 push 操作 workflow_dispatch: # 手动触发 jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '20' - name: Install dependencies run: npm install - name: Get version from package.json id: get_version run: echo "VERSION=$(node -p \"require('./package.json').version\")" >> $GITHUB_ENV - name: Build project run: npm run build - name: Build Docker image run: | docker build -t ghcr.io/${{ github.repository }}/nazhua:${{ env.VERSION }} . - name: Log in to GitHub Container Registry run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Push Docker image run: | docker push ghcr.io/${{ github.repository }}/nazhua:${{ env.VERSION }} docker tag ghcr.io/${{ github.repository }}/nazhua:${{ env.VERSION }} ghcr.io/${{ github.repository }}/nazhua:latest docker push ghcr.io/${{ github.repository }}/nazhua:latest