Skip to content

Commit cb84cb0

Browse files
chore(CI): fix flaky CI (#76)
1 parent bf8a12f commit cb84cb0

7 files changed

Lines changed: 55 additions & 29 deletions

File tree

.github/workflows/pull.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ name: PR CI
44
on:
55
pull_request:
66

7+
permissions:
8+
id-token: write
9+
contents: read
10+
711
jobs:
812
pr-ci-go-v3-test:
913
uses: ./.github/workflows/ci_test_go_v3.yml

.github/workflows/push.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ on:
66
branches:
77
- main
88

9+
permissions:
10+
id-token: write
11+
contents: read
12+
913
jobs:
1014
push-ci-go-v3-test:
1115
uses: ./.github/workflows/ci_test_go_v3.yml

.github/workflows/static-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ jobs:
99
steps:
1010
- uses: actions/checkout@v2
1111
- name: not-grep
12-
uses: mattsb42-meta/not-grep@1.0.0
12+
uses: mattsb42-meta/not-grep@1.0.1

v3/testvectors/compatibility_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func TestKmsV1toV4_CBC(t *testing.T) {
114114
kmsKeyAlias := LoadAwsKmsAlias()
115115

116116
cekAlg := "aes_cbc"
117-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_CBC.txt"
117+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_CBC_" + uniqueSuffix() + ".txt"
118118
region := "us-west-2"
119119
plaintext := "This is a test.\n"
120120

@@ -183,7 +183,7 @@ func TestKmsV1toV4_GCM(t *testing.T) {
183183
kmsKeyAlias := LoadAwsKmsAlias()
184184

185185
cekAlg := "aes_gcm"
186-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_GCM.txt"
186+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_GCM_" + uniqueSuffix() + ".txt"
187187
region := "us-west-2"
188188
plaintext := "This is a test.\n"
189189

@@ -252,7 +252,7 @@ func TestKmsContextV2toV4_GCM(t *testing.T) {
252252
kmsKeyAlias := LoadAwsKmsAlias()
253253

254254
cekAlg := "aes_gcm"
255-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V2toV4_GCM.txt"
255+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V2toV4_GCM_" + uniqueSuffix() + ".txt"
256256
region := "us-west-2"
257257
plaintext := "This is a test.\n"
258258

@@ -320,7 +320,7 @@ func TestKmsContextV4toV2_GCM(t *testing.T) {
320320
kmsKeyAlias := LoadAwsKmsAlias()
321321

322322
cekAlg := "aes_gcm"
323-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V4toV2_GCM.txt"
323+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V4toV2_GCM_" + uniqueSuffix() + ".txt"
324324
region := "us-west-2"
325325
plaintext := "This is a test.\n"
326326

@@ -388,7 +388,7 @@ func TestInstructionFileV2toV4(t *testing.T) {
388388
kmsKeyAlias := LoadAwsKmsAlias()
389389

390390
cekAlg := "aes_cbc"
391-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/inst_file_test.txt"
391+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/inst_file_test_" + uniqueSuffix() + ".txt"
392392
region := "us-west-2"
393393
plaintext := "This is a test.\n"
394394

@@ -461,7 +461,7 @@ func TestNegativeKeyringOption(t *testing.T) {
461461
kmsKeyAlias := LoadAwsKmsAlias()
462462

463463
cekAlg := "aes_cbc"
464-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/NegativeV1toV4_CBC.txt"
464+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/NegativeV1toV4_CBC_" + uniqueSuffix() + ".txt"
465465
region := "us-west-2"
466466
plaintext := "This is a test.\n"
467467

@@ -520,9 +520,10 @@ func TestEnableLegacyDecryptBothFormats(t *testing.T) {
520520
kmsKeyAlias := LoadAwsKmsAlias()
521521

522522
cekAlgCbc := "aes_cbc"
523-
keyCbc := "crypto_tests/" + cekAlgCbc + "/v4/language_Go/BothFormats_CBC.txt"
523+
suffix := uniqueSuffix()
524+
keyCbc := "crypto_tests/" + cekAlgCbc + "/v4/language_Go/BothFormats_CBC_" + suffix + ".txt"
524525
cekAlgGcm := "aes_gcm"
525-
keyGcm := "crypto_tests/" + cekAlgGcm + "/v4/language_Go/BothFormats_GCM.txt"
526+
keyGcm := "crypto_tests/" + cekAlgGcm + "/v4/language_Go/BothFormats_GCM_" + suffix + ".txt"
526527
region := "us-west-2"
527528
plaintext := "This is a test.\n"
528529

v3/testvectors/s3_integ_test.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package testvectors
66
import (
77
"bytes"
88
"context"
9+
"crypto/rand"
10+
"encoding/hex"
911
"fmt"
1012
"github.com/aws/amazon-s3-encryption-client-go/v3/algorithms"
1113
"github.com/aws/amazon-s3-encryption-client-go/v3/client"
@@ -22,6 +24,12 @@ import (
2224
"time"
2325
)
2426

27+
func uniqueSuffix() string {
28+
b := make([]byte, 8)
29+
rand.Read(b)
30+
return hex.EncodeToString(b)
31+
}
32+
2533
const version = "v3"
2634

2735
func getAliasArn(shortAlias string, region string, accountId string) string {
@@ -404,7 +412,7 @@ func TestInteg_DeleteObjects_DeletesObjects(t *testing.T) {
404412
var bucket = LoadBucket()
405413
var region = LoadRegion()
406414
var accountId = LoadAwsAccountId()
407-
var baseKey = "delete-objects-test-" + time.Now().Format("20060102-150405")
415+
var baseKey = "delete-objects-test-" + uniqueSuffix()
408416
var key1 = baseKey + "-object1"
409417
var key2 = baseKey + "-object2"
410418
var key3 = baseKey + "-object3"
@@ -554,7 +562,7 @@ func TestInteg_DeleteObject_DeletesObjectAndInstructionFile(t *testing.T) {
554562
var bucket = LoadBucket()
555563
var region = LoadRegion()
556564
var accountId = LoadAwsAccountId()
557-
var key = "delete-object-test-" + time.Now().Format("20060102-150405")
565+
var key = "delete-object-test-" + uniqueSuffix()
558566
var plaintext = "Hello, S3 Encryption Client DeleteObject test!"
559567

560568
ctx := context.Background()
@@ -1243,7 +1251,7 @@ func TestInteg_GetObject_BasicDecryption(t *testing.T) {
12431251
var bucket = LoadBucket()
12441252
var region = LoadRegion()
12451253
var accountId = LoadAwsAccountId()
1246-
var key = "basic-getobject-test-" + time.Now().Format("20060102-150405")
1254+
var key = "basic-getobject-test-" + uniqueSuffix()
12471255
var plaintext = "Hello, S3 Encryption Client GetObject test!"
12481256

12491257
ctx := context.Background()
@@ -1339,7 +1347,7 @@ func TestInteg_PutObject_BasicEncryption(t *testing.T) {
13391347
var bucket = LoadBucket()
13401348
var region = LoadRegion()
13411349
var accountId = LoadAwsAccountId()
1342-
var key = "basic-putobject-test-" + time.Now().Format("20060102-150405")
1350+
var key = "basic-putobject-test-" + uniqueSuffix()
13431351
var plaintext = "Hello, S3 Encryption Client PutObject test!"
13441352

13451353
ctx := context.Background()
@@ -1562,7 +1570,7 @@ func TestInteg_AlgorithmSuiteMessageFormatCompatibility(t *testing.T) {
15621570
var bucket = LoadBucket()
15631571
var region = LoadRegion()
15641572
var accountId = LoadAwsAccountId()
1565-
var baseKey = "algorithm-suite-message-format-test-" + time.Now().Format("20060102-150405")
1573+
var baseKey = "algorithm-suite-message-format-test-" + uniqueSuffix()
15661574
var plaintext = "Hello, S3 Encryption Client Algorithm Suite Message Format test!"
15671575

15681576
ctx := context.Background()
@@ -1741,7 +1749,7 @@ func TestInteg_CommitmentPolicyBehavior(t *testing.T) {
17411749
var bucket = LoadBucket()
17421750
var region = LoadRegion()
17431751
var accountId = LoadAwsAccountId()
1744-
var baseKey = "commitment-policy-test-" + time.Now().Format("20060102-150405")
1752+
var baseKey = "commitment-policy-test-" + uniqueSuffix()
17451753
var plaintext = "Hello, S3 Encryption Client Commitment Policy test!"
17461754

17471755
ctx := context.Background()

v4/testvectors/compatibility_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func TestKmsV1toV4_CBC(t *testing.T) {
114114
kmsKeyAlias := LoadAwsKmsAlias()
115115

116116
cekAlg := "aes_cbc"
117-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_CBC.txt"
117+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_CBC_" + uniqueSuffix() + ".txt"
118118
region := "us-west-2"
119119
plaintext := "This is a test.\n"
120120

@@ -183,7 +183,7 @@ func TestKmsV1toV4_GCM(t *testing.T) {
183183
kmsKeyAlias := LoadAwsKmsAlias()
184184

185185
cekAlg := "aes_gcm"
186-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_GCM.txt"
186+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V1toV4_GCM_" + uniqueSuffix() + ".txt"
187187
region := "us-west-2"
188188
plaintext := "This is a test.\n"
189189

@@ -252,7 +252,7 @@ func TestKmsContextV2toV4_GCM(t *testing.T) {
252252
kmsKeyAlias := LoadAwsKmsAlias()
253253

254254
cekAlg := "aes_gcm"
255-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V2toV4_GCM.txt"
255+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V2toV4_GCM_" + uniqueSuffix() + ".txt"
256256
region := "us-west-2"
257257
plaintext := "This is a test.\n"
258258

@@ -320,7 +320,7 @@ func TestKmsContextV4toV2_GCM(t *testing.T) {
320320
kmsKeyAlias := LoadAwsKmsAlias()
321321

322322
cekAlg := "aes_gcm"
323-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V4toV2_GCM.txt"
323+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/V4toV2_GCM_" + uniqueSuffix() + ".txt"
324324
region := "us-west-2"
325325
plaintext := "This is a test.\n"
326326

@@ -388,7 +388,7 @@ func TestInstructionFileV2toV4(t *testing.T) {
388388
kmsKeyAlias := LoadAwsKmsAlias()
389389

390390
cekAlg := "aes_cbc"
391-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/inst_file_test.txt"
391+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/inst_file_test_" + uniqueSuffix() + ".txt"
392392
region := "us-west-2"
393393
plaintext := "This is a test.\n"
394394

@@ -461,7 +461,7 @@ func TestNegativeKeyringOption(t *testing.T) {
461461
kmsKeyAlias := LoadAwsKmsAlias()
462462

463463
cekAlg := "aes_cbc"
464-
key := "crypto_tests/" + cekAlg + "/v4/language_Go/NegativeV1toV4_CBC.txt"
464+
key := "crypto_tests/" + cekAlg + "/v4/language_Go/NegativeV1toV4_CBC_" + uniqueSuffix() + ".txt"
465465
region := "us-west-2"
466466
plaintext := "This is a test.\n"
467467

@@ -520,9 +520,10 @@ func TestEnableLegacyDecryptBothFormats(t *testing.T) {
520520
kmsKeyAlias := LoadAwsKmsAlias()
521521

522522
cekAlgCbc := "aes_cbc"
523-
keyCbc := "crypto_tests/" + cekAlgCbc + "/v4/language_Go/BothFormats_CBC.txt"
523+
suffix := uniqueSuffix()
524+
keyCbc := "crypto_tests/" + cekAlgCbc + "/v4/language_Go/BothFormats_CBC_" + suffix + ".txt"
524525
cekAlgGcm := "aes_gcm"
525-
keyGcm := "crypto_tests/" + cekAlgGcm + "/v4/language_Go/BothFormats_GCM.txt"
526+
keyGcm := "crypto_tests/" + cekAlgGcm + "/v4/language_Go/BothFormats_GCM_" + suffix + ".txt"
526527
region := "us-west-2"
527528
plaintext := "This is a test.\n"
528529

v4/testvectors/s3_integ_test.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ package testvectors
66
import (
77
"bytes"
88
"context"
9+
"crypto/rand"
10+
"encoding/hex"
911
"fmt"
1012
"github.com/aws/amazon-s3-encryption-client-go/v4/algorithms"
1113
"github.com/aws/amazon-s3-encryption-client-go/v4/client"
@@ -22,6 +24,12 @@ import (
2224
"time"
2325
)
2426

27+
func uniqueSuffix() string {
28+
b := make([]byte, 8)
29+
rand.Read(b)
30+
return hex.EncodeToString(b)
31+
}
32+
2533
const version = "v4"
2634

2735
func getAliasArn(shortAlias string, region string, accountId string) string {
@@ -509,7 +517,7 @@ func TestInteg_DeleteObjects_DeletesObjects(t *testing.T) {
509517
var bucket = LoadBucket()
510518
var region = LoadRegion()
511519
var accountId = LoadAwsAccountId()
512-
var baseKey = "delete-objects-test-" + time.Now().Format("20060102-150405")
520+
var baseKey = "delete-objects-test-" + uniqueSuffix()
513521
var key1 = baseKey + "-object1"
514522
var key2 = baseKey + "-object2"
515523
var key3 = baseKey + "-object3"
@@ -659,7 +667,7 @@ func TestInteg_DeleteObject_DeletesObjectAndInstructionFile(t *testing.T) {
659667
var bucket = LoadBucket()
660668
var region = LoadRegion()
661669
var accountId = LoadAwsAccountId()
662-
var key = "delete-object-test-" + time.Now().Format("20060102-150405")
670+
var key = "delete-object-test-" + uniqueSuffix()
663671
var plaintext = "Hello, S3 Encryption Client DeleteObject test!"
664672

665673
ctx := context.Background()
@@ -1348,7 +1356,7 @@ func TestInteg_GetObject_BasicDecryption(t *testing.T) {
13481356
var bucket = LoadBucket()
13491357
var region = LoadRegion()
13501358
var accountId = LoadAwsAccountId()
1351-
var key = "basic-getobject-test-" + time.Now().Format("20060102-150405")
1359+
var key = "basic-getobject-test-" + uniqueSuffix()
13521360
var plaintext = "Hello, S3 Encryption Client GetObject test!"
13531361

13541362
ctx := context.Background()
@@ -1444,7 +1452,7 @@ func TestInteg_PutObject_BasicEncryption(t *testing.T) {
14441452
var bucket = LoadBucket()
14451453
var region = LoadRegion()
14461454
var accountId = LoadAwsAccountId()
1447-
var key = "basic-putobject-test-" + time.Now().Format("20060102-150405")
1455+
var key = "basic-putobject-test-" + uniqueSuffix()
14481456
var plaintext = "Hello, S3 Encryption Client PutObject test!"
14491457

14501458
ctx := context.Background()
@@ -1667,7 +1675,7 @@ func TestInteg_AlgorithmSuiteMessageFormatCompatibility(t *testing.T) {
16671675
var bucket = LoadBucket()
16681676
var region = LoadRegion()
16691677
var accountId = LoadAwsAccountId()
1670-
var baseKey = "algorithm-suite-message-format-test-" + time.Now().Format("20060102-150405")
1678+
var baseKey = "algorithm-suite-message-format-test-" + uniqueSuffix()
16711679
var plaintext = "Hello, S3 Encryption Client Algorithm Suite Message Format test!"
16721680

16731681
ctx := context.Background()
@@ -1858,7 +1866,7 @@ func TestInteg_CommitmentPolicyBehavior(t *testing.T) {
18581866
var bucket = LoadBucket()
18591867
var region = LoadRegion()
18601868
var accountId = LoadAwsAccountId()
1861-
var baseKey = "commitment-policy-test-" + time.Now().Format("20060102-150405")
1869+
var baseKey = "commitment-policy-test-" + uniqueSuffix()
18621870
var plaintext = "Hello, S3 Encryption Client Commitment Policy test!"
18631871

18641872
ctx := context.Background()

0 commit comments

Comments
 (0)