diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90843062d0..57e2db4159 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,17 +9,37 @@ on: description: "Custom Builder" required: false default: "" + architecture: + description: "Architecture" + required: false + default: all + type: string + + jobs: parse: outputs: pkgs: ${{ steps.parsing.outputs.pkgs }} builder: ${{ inputs.custom_builder }} + arch: ${{ steps.parsing.outputs.arch }} runs-on: "ubuntu-latest" steps: - name: Parse Input id: parsing - run: echo "${{ inputs.packages }}" | sed 's/ /\n/g' | sed 's/$/\//g' | jq -R . | jq -s . | jq -c . | sed 's/^/pkgs=/' >> $GITHUB_OUTPUT + run: | + echo "${{ inputs.packages }}" | sed 's/ /\n/g' | sed 's/$/\//g' | jq -R . | jq -s . | jq -c . | sed 's/^/pkgs=/' >> $GITHUB_OUTPUT + echo "builder=${{ inputs.custom_builder }}" >> $GITHUB_OUTPUT + arch="${{ inputs.architecture }}" + # Convert to json array using jq + # if arch is not all, convert to array + if [ "$arch" != "all" ]; then + # jq, array with single element as string + arch=$(echo $arch | sed 's/,/\n/g') + echo "arch=$(echo $arch | jq -Rs 'split("\n")' | jq 'map(select(length > 0))' | jq -c .)" >> $GITHUB_OUTPUT + else + echo "arch=$(echo '["aarch64", "x86_64"]' | jq -c .)" >> $GITHUB_OUTPUT + fi build: needs: parse @@ -27,9 +47,9 @@ jobs: matrix: pkg: ${{ fromJson(needs.parse.outputs.pkgs) }} version: ["rawhide"] - arch: ${{ output.builder == "x86-64-lg" && ["x86_64"] || ["x86_64", "aarch64"] }} + arch: ${{ fromJson(needs.parse.outputs.arch) }} fail-fast: false - runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || output.builder && output.builder || 'ubuntu-latest' }} + runs-on: ${{ matrix.arch == 'aarch64' && 'ARM64' || needs.parse.outputs.builder && needs.parse.outputs.builder || 'ubuntu-latest' }} container: image: ghcr.io/terrapkg/builder:f${{ matrix.version }} options: --cap-add=SYS_ADMIN --privileged