-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathaction.yaml
126 lines (107 loc) · 3.47 KB
/
action.yaml
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# Copyright 2022 Chainguard, Inc.
# SPDX-License-Identifier: Apache-2.0
name: 'Build package with melange'
description: |
This action builds a single package using Melange, given a config file.
It deals with setting up the Melange build tool, repository, and signing
key.
inputs:
config:
description: |
The config file to use for building the package.
default: .melange.yaml
multi-config:
description: |
Comma-separated list of config files to use for building package(s).
default: ''
archs:
description: |
The architectures to use.
default: x86_64
sign-with-temporary-key:
description: |
Sign packages with a temporary key, useful for multi-stage
pipelines.
default: false
signing-key-path:
description: |
The path for the temporary key if signing is enabled.
default: ${{ github.workspace }}/melange.rsa
repository-path:
description: |
The path of the repository being constructed by Melange.
default: ${{ github.workspace }}/packages
repository-append:
description: |
A list of paths or URIs of repositories that should be
implicitly included in the build environment.
default: ''
keyring-append:
description: |
A list of paths or URIs of keys that should be included
in the build environment.
default: ''
namespace:
description: |
Namespace string to use in SBOM purls identifying built packages (eg wolfi, alpine)
default: ''
empty-workspace:
description: |
Whether to use an empty workspace or not.
default: false
workdir:
description: |
Switch to this directory prior to running build
default: ''
cache-dir:
description: |
Directory used for cached inputs
default: ''
pipeline-dir:
description: |
Directory used for pipelines
default: ''
git-commit:
description: |
Commit hash of the git repository containing the build config file
default: ''
git-repo-url:
description: |
URL of the git repository containing the build config file
default: ''
version:
description: |
Version of melange to install (tip, latest-release, v0.5.5, etc.)
required: true
default: 'latest-release'
runs:
using: 'composite'
steps:
- if: inputs.template != ''
shell: bash
run: |
echo "Warning: the --template flag has been removed from melange and will be ignored."
- uses: chainguard-dev/actions/setup-melange@main
with:
version: ${{ inputs.version }}
- uses: chainguard-dev/actions/melange-keygen@main
if: ${{ inputs.sign-with-temporary-key }}
with:
signing-key-path: ${{ inputs.signing-key-path }}
- uses: chainguard-dev/actions/melange-build-pkg@main
with:
config: ${{ inputs.config }}
multi-config: ${{ inputs.multi-config }}
archs: ${{ inputs.archs }}
sign-with-key: ${{ inputs.sign-with-temporary-key }}
signing-key-path: ${{ inputs.signing-key-path }}
repository-path: ${{ inputs.repository-path }}
repository-append: ${{ inputs.repository-append }}
keyring-append: ${{ inputs.keyring-append }}
empty-workspace: ${{ inputs.empty-workspace }}
namespace: ${{ inputs.namespace }}
workdir: ${{ inputs.workdir }}
cache-dir: ${{ inputs.cache-dir }}
pipeline-dir: ${{ inputs.pipeline-dir }}
git-commit: ${{ inputs.git-commit }}
git-repo-url: ${{ inputs.git-repo-url }}