You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
synctv/.github/workflows/build.yml

56 lines
1.2 KiB
YAML

name: build
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
get_all_targets:
name: Get all targets
runs-on: ubuntu-latest
outputs:
TARGETS: ${{ steps.get_all_targets.outputs.TARGETS }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get all targets
id: get_all_targets
run: |
declare -a arr=()
OIFS="$IFS"
IFS=$'\n,'
for line in $(script/build.sh -t); do
arr+=("$line")
done
IFS="$OIFS"
printf -v json '"%s",' "${arr[@]}"
json="[${json%,}]"
echo "TARGETS=$json" >> $GITHUB_OUTPUT
build:
name: Build
runs-on: ubuntu-latest
needs: get_all_targets
strategy:
matrix:
target: ${{ fromJson(needs.get_all_targets.outputs.TARGETS) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: Build
run: |
bash script/build.sh -sp "${{ matrix.target }}" -m '-a -v -x'