-
Notifications
You must be signed in to change notification settings - Fork 0
72 lines (70 loc) · 2.53 KB
/
Copy pathbuild.yml
File metadata and controls
72 lines (70 loc) · 2.53 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
68
69
70
71
72
---
name: build
on: # yamllint disable-line rule:truthy
workflow_call:
inputs:
codename:
required: true
type: string
docker_image_name:
required: true
type: string
docker_image_tag:
required: true
type: string
runner_image:
required: true
type: string
sign:
required: false
type: boolean
default: false
secrets:
GPG_PRIVATE_KEY:
required: false
GPG_PASSPHRASE:
required: false
jobs:
list_spec_files:
runs-on: ubuntu-24.04
outputs:
spec_files: ${{ steps.list_spec_files.outputs.spec_files }}
steps:
- uses: actions/checkout@v5
- id: list_spec_files
run: |
spec_files=$(find SPECS/${{ inputs.codename }} -type l -name '*.spec' -printf '%f\n' | jq -R . | jq -c -s .)
echo "spec_files=$spec_files" >> $GITHUB_OUTPUT
build:
needs:
- list_spec_files
strategy:
matrix:
spec_file: ${{ fromJson(needs.list_spec_files.outputs.spec_files) }}
runs-on: ${{ inputs.runner_image }}
steps:
- uses: actions/checkout@v5
- if: ${{ !inputs.sign }}
run: sudo make SPEC_FILE=SPECS/${{ matrix.spec_file }} DOCKER_IMAGE_NAME=${{ inputs.docker_image_name }} DOCKER_IMAGE_TAG=${{ inputs.docker_image_tag }} build_in_docker
- if: ${{ inputs.sign }}
run: sudo make SPEC_FILE=SPECS/${{ matrix.spec_file }} DOCKER_IMAGE_NAME=${{ inputs.docker_image_name }} DOCKER_IMAGE_TAG=${{ inputs.docker_image_tag }} GPG_PRIVATE_KEY="${{ secrets.GPG_PRIVATE_KEY }}" GPG_PASSPHRASE=${{ secrets.GPG_PASSPHRASE }} build_and_sign_in_docker
- if: ${{ inputs.sign }}
uses: actions/upload-artifact@v5
with:
name: kubernetes-rpms-${{ matrix.spec_file }}-${{ inputs.docker_image_tag }}-${{ inputs.runner_image }}
path: RPMS/kubernetes
- if: ${{ inputs.sign }}
uses: actions/upload-artifact@v5
with:
name: prometheus-rpms-${{ matrix.spec_file }}-${{ inputs.docker_image_tag }}-${{ inputs.runner_image }}
path: RPMS/prometheus
- if: ${{ inputs.sign }}
uses: actions/upload-artifact@v5
with:
name: incus-rpms-${{ matrix.spec_file }}-${{ inputs.docker_image_tag }}-${{ inputs.runner_image }}
path: RPMS/incus
- if: ${{ inputs.sign }}
uses: actions/upload-artifact@v5
with:
name: zfs-rpms-${{ matrix.spec_file }}-${{ inputs.docker_image_tag }}-${{ inputs.runner_image }}
path: RPMS/zfs