-
-
Notifications
You must be signed in to change notification settings - Fork 135
67 lines (64 loc) · 1.99 KB
/
Copy pathbuild.yml
File metadata and controls
67 lines (64 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
name: Manual Builds
permissions:
contents: read
attestations: write
artifact-metadata: write
id-token: write
on:
workflow_dispatch:
inputs:
packages:
description: "Packages to Build"
required: true
custom_builder:
description: "Custom Builder"
required: false
default: ""
architecture:
description: "Architectures"
required: false
default: ""
type: string
run-name: ${{ inputs.packages }}
jobs:
manifest:
outputs:
build_matrix: ${{ steps.parsing.outputs.build_matrix }}
runs-on: ubuntu-22.04
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Git
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git config user.name "Raboneko"
git config user.email "raboneko@fyralabs.com"
- name: Parse Input
id: parsing
run: |
for pkg in ${{ inputs.packages }}; do
touch anda/$pkg/.build
done
git add --all
git commit -a -m "tmp"
b=$(anda ci | sed -E 's@^build_matrix=@@')
if [ "${{ inputs.architecture }}" != "" ]; then
# e.g.: [ unique_by(.pkg)[] | (.arch="x86_64", .arch="aarch64") ]
filter=`echo -n "${{ inputs.architecture }}" | tr '[:space:]' '\n' | sed -E '/^$/d; s@^.+$@.arch="\0"@' | tr '\n' ', '`
b=`echo $b | jq -c '[unique_by(.pkg)[] | ('"$filter"')]'`
elif [ "${{ inputs.custom_builder }}" != "" ]; then
b=`echo $b | jq -c 'unique_by(.pkg)'`
fi
echo "build_matrix=$b" >> $GITHUB_OUTPUT
build:
needs: manifest
uses: ./.github/workflows/json-build.yml
secrets: inherit
with:
packages: ${{ needs.manifest.outputs.build_matrix }}
custom_builder: ${{ inputs.custom_builder }}