name: build on: push: paths-ignore: - "**.md" pull_request: paths-ignore: - "**.md" concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: get-targets: name: Get all targets runs-on: ubuntu-latest outputs: targets: ${{ steps.get-targets.outputs.targets }} steps: - name: Checkout uses: actions/checkout@v4 - name: Get targets id: get-targets uses: zijiren233/go-build-action@v1 with: show-all-targets: true build-targets: name: Build runs-on: ubuntu-latest needs: get-targets strategy: matrix: target: ${{ fromJson(needs.get-targets.outputs.targets) }} steps: - name: Checkout uses: actions/checkout@v4 with: submodules: true - name: Setup Go uses: actions/setup-go@v5 with: go-version: "1.23" - name: Build targets uses: zijiren233/go-build-action@v1 with: targets: ${{ matrix.target }} enable-micro: ${{ !endsWith(matrix.target, '-arm64') }} config-args: --skip-init-web - name: Get artifact name id: get_artifact_name run: | echo "ARTIFACT_NAME=$(echo ${{ matrix.target }} | tr '/' '-')" >> $GITHUB_OUTPUT - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: ${{ steps.get_artifact_name.outputs.ARTIFACT_NAME }} path: build/*