@@ -2,6 +2,8 @@ package actionsgithubcom
22
33import (
44 "context"
5+ "fmt"
6+ "strings"
57 "testing"
68
79 "github.com/actions/actions-runner-controller/apis/actions.github.com/v1alpha1"
@@ -91,3 +93,70 @@ func TestLabelPropagation(t *testing.T) {
9193 assert .Equal (t , ephemeralRunner .Labels [key ], pod .Labels [key ])
9294 }
9395}
96+
97+ func TestGitHubURLTrimLabelValues (t * testing.T ) {
98+ enterprise := strings .Repeat ("a" , 64 )
99+ organization := strings .Repeat ("b" , 64 )
100+ repository := strings .Repeat ("c" , 64 )
101+
102+ autoscalingRunnerSet := v1alpha1.AutoscalingRunnerSet {
103+ ObjectMeta : metav1.ObjectMeta {
104+ Name : "test-scale-set" ,
105+ Namespace : "test-ns" ,
106+ Labels : map [string ]string {
107+ LabelKeyKubernetesPartOf : labelValueKubernetesPartOf ,
108+ LabelKeyKubernetesVersion : "0.2.0" ,
109+ },
110+ Annotations : map [string ]string {
111+ runnerScaleSetIdAnnotationKey : "1" ,
112+ AnnotationKeyGitHubRunnerGroupName : "test-group" ,
113+ },
114+ },
115+ }
116+
117+ t .Run ("org/repo" , func (t * testing.T ) {
118+ autoscalingRunnerSet := autoscalingRunnerSet .DeepCopy ()
119+ autoscalingRunnerSet .Spec = v1alpha1.AutoscalingRunnerSetSpec {
120+ GitHubConfigUrl : fmt .Sprintf ("https://github.com/%s/%s" , organization , repository ),
121+ }
122+
123+ var b resourceBuilder
124+ ephemeralRunnerSet , err := b .newEphemeralRunnerSet (autoscalingRunnerSet )
125+ require .NoError (t , err )
126+ assert .Len (t , ephemeralRunnerSet .Labels [LabelKeyGitHubEnterprise ], 0 )
127+ assert .Len (t , ephemeralRunnerSet .Labels [LabelKeyGitHubOrganization ], 63 )
128+ assert .Len (t , ephemeralRunnerSet .Labels [LabelKeyGitHubRepository ], 63 )
129+ assert .True (t , strings .HasSuffix (ephemeralRunnerSet .Labels [LabelKeyGitHubOrganization ], trimLabelVauleSuffix ))
130+ assert .True (t , strings .HasSuffix (ephemeralRunnerSet .Labels [LabelKeyGitHubRepository ], trimLabelVauleSuffix ))
131+
132+ listener , err := b .newAutoScalingListener (autoscalingRunnerSet , ephemeralRunnerSet , autoscalingRunnerSet .Namespace , "test:latest" , nil )
133+ require .NoError (t , err )
134+ assert .Len (t , listener .Labels [LabelKeyGitHubEnterprise ], 0 )
135+ assert .Len (t , listener .Labels [LabelKeyGitHubOrganization ], 63 )
136+ assert .Len (t , listener .Labels [LabelKeyGitHubRepository ], 63 )
137+ assert .True (t , strings .HasSuffix (ephemeralRunnerSet .Labels [LabelKeyGitHubOrganization ], trimLabelVauleSuffix ))
138+ assert .True (t , strings .HasSuffix (ephemeralRunnerSet .Labels [LabelKeyGitHubRepository ], trimLabelVauleSuffix ))
139+ })
140+
141+ t .Run ("enterprise" , func (t * testing.T ) {
142+ autoscalingRunnerSet := autoscalingRunnerSet .DeepCopy ()
143+ autoscalingRunnerSet .Spec = v1alpha1.AutoscalingRunnerSetSpec {
144+ GitHubConfigUrl : fmt .Sprintf ("https://github.com/enterprises/%s" , enterprise ),
145+ }
146+
147+ var b resourceBuilder
148+ ephemeralRunnerSet , err := b .newEphemeralRunnerSet (autoscalingRunnerSet )
149+ require .NoError (t , err )
150+ assert .Len (t , ephemeralRunnerSet .Labels [LabelKeyGitHubEnterprise ], 63 )
151+ assert .True (t , strings .HasSuffix (ephemeralRunnerSet .Labels [LabelKeyGitHubEnterprise ], trimLabelVauleSuffix ))
152+ assert .Len (t , ephemeralRunnerSet .Labels [LabelKeyGitHubOrganization ], 0 )
153+ assert .Len (t , ephemeralRunnerSet .Labels [LabelKeyGitHubRepository ], 0 )
154+
155+ listener , err := b .newAutoScalingListener (autoscalingRunnerSet , ephemeralRunnerSet , autoscalingRunnerSet .Namespace , "test:latest" , nil )
156+ require .NoError (t , err )
157+ assert .Len (t , listener .Labels [LabelKeyGitHubEnterprise ], 63 )
158+ assert .True (t , strings .HasSuffix (ephemeralRunnerSet .Labels [LabelKeyGitHubEnterprise ], trimLabelVauleSuffix ))
159+ assert .Len (t , listener .Labels [LabelKeyGitHubOrganization ], 0 )
160+ assert .Len (t , listener .Labels [LabelKeyGitHubRepository ], 0 )
161+ })
162+ }
0 commit comments