Skip to content

Commit 74a0df4

Browse files
authored
feat(cli): adds always event (#94)
1 parent 4ea5673 commit 74a0df4

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

cli/pkg/events/always.go

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package events
2+
3+
import (
4+
"cuelang.org/go/cue"
5+
"github.com/input-output-hk/catalyst-forge/lib/project/project"
6+
)
7+
8+
// AlwaysEvent fires always.
9+
type AlwaysEvent struct{}
10+
11+
func (m *AlwaysEvent) Firing(p *project.Project, config cue.Value) (bool, error) {
12+
return true, nil
13+
}

cli/pkg/events/events.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ import (
1313
type EventType string
1414

1515
const (
16-
MergeEventName EventType = "merge"
17-
TagEventName EventType = "tag"
16+
AlwaysEventName EventType = "always"
17+
MergeEventName EventType = "merge"
18+
TagEventName EventType = "tag"
1819
)
1920

2021
// Event represents a CI event.
@@ -37,9 +38,9 @@ type DefaultEventHandler struct {
3738

3839
// Fires returns true if any of the given events are firing.
3940
func (r *DefaultEventHandler) Firing(p *project.Project, events map[string]cue.Value) bool {
40-
for event, config := range events {
41-
r.logger.Debug("checking event", "event", event)
42-
event, ok := r.store[EventType(event)]
41+
for eventName, config := range events {
42+
r.logger.Debug("checking event", "event", eventName)
43+
event, ok := r.store[EventType(eventName)]
4344
if !ok {
4445
r.logger.Error("unknown event", "event", event)
4546
continue
@@ -52,7 +53,7 @@ func (r *DefaultEventHandler) Firing(p *project.Project, events map[string]cue.V
5253
}
5354

5455
if firing {
55-
r.logger.Debug("event is firing", "event", event)
56+
r.logger.Debug("event is firing", "event", eventName)
5657
return true
5758
}
5859
}
@@ -65,6 +66,7 @@ func NewDefaultEventHandler(logger *slog.Logger) DefaultEventHandler {
6566
return DefaultEventHandler{
6667
logger: logger,
6768
store: map[EventType]Event{
69+
AlwaysEventName: &AlwaysEvent{},
6870
MergeEventName: &MergeEvent{
6971
logger: logger,
7072
},

docs/src/reference/releases/index.md

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ Doing so helps prevent merging a potentially broken release configuration.
2626

2727
The supported events are documented below.
2828

29+
#### `always` event
30+
31+
The `always` event is the most straight-forward event in that it always triggers, no matter what.
32+
This is sometimes useful for previewing or debugging a release.
33+
2934
#### `merge` event
3035

3136
| Field | Description | Type | Default |

0 commit comments

Comments
 (0)