# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

name: Build Binary For Release

on:
  push:
    tags:
      - "v*"
permissions:
  contents: write

jobs:
  build-goreleaser:
    if: ${{ github.repository_owner == 'apache' }}
    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: Set up Node
      uses: actions/setup-node@v4
      with:
        node-version: 20.18.1

    - name: Node Build
      run: make install-ui-packages ui

    - name: Setup Go
      uses: actions/setup-go@v5
      with:
        go-version: 1.23

    - name: Install GoReleaser
      run: go install github.com/goreleaser/goreleaser/v2@latest

    - name: Run GoReleaser
      run: |
        "$(go env GOPATH)/bin/goreleaser" release --clean --skip=validate
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    - uses: actions/upload-artifact@v4
      with:
        name: answer
        path: ./dist/*
