@@ -32,24 +32,52 @@ runs:
32
32
run : |
33
33
earthly --artifact ./forge/cli+build/forge /usr/local/bin/forge
34
34
35
- - name : Get provider configuration
36
- id : provider
35
+ # AWS Provider
36
+ - name : Get AWS provider configuration
37
+ id : aws
37
38
shell : bash
38
39
run : |
39
40
BP=$(forge blueprint dump .)
40
41
41
42
AWS=$(echo "$BP" | jq -r .ci.providers.aws)
42
43
if [[ "$AWS" != "null" ]]; then
43
- AWS_REGION =$(echo "$BP" | jq -r .ci.providers.aws.region)
44
- AWS_ROLE =$(echo "$BP" | jq -r .ci.providers.aws.role)
44
+ REGION =$(echo "$BP" | jq -r .ci.providers.aws.region)
45
+ ROLE =$(echo "$BP" | jq -r .ci.providers.aws.role)
45
46
fi
46
47
47
- echo "aws_region=$AWS_REGION" >> $GITHUB_OUTPUT
48
- echo "aws_role=$AWS_ROLE" >> $GITHUB_OUTPUT
49
-
48
+ echo "region=$REGION" >> $GITHUB_OUTPUT
49
+ echo "role=$ROLE" >> $GITHUB_OUTPUT
50
50
- name : Configure AWS
51
51
uses : aws-actions/configure-aws-credentials@v4
52
- if : ${{ steps.provider.outputs.aws_region != '' && steps.provider.outputs.aws_role != '' }}
52
+ if : ${{ steps.aws.outputs.region != '' && steps.aws.outputs.role != '' }}
53
+ with :
54
+ aws-region : ${{ steps.aws.outputs.region }}
55
+ role-to-assume : ${{ steps.aws.outputs.role }}
56
+
57
+ # Docker Provider
58
+ - name : Get Docker provider configuration
59
+ id : docker
60
+ shell : bash
61
+ run : |
62
+ BP=$(forge blueprint dump .)
63
+
64
+ DOCKER=$(echo "$BP" | jq -r .ci.providers.docker.credentials)
65
+ if [[ "$DOCKER" != "null" ]]; then
66
+ SECRET=$(forge secret get -b . ci.providers.docker.credentials)
67
+ USERNAME=$(echo "$SECRET" | jq -r .username)
68
+ PASSWORD=$(echo "$SECRET" | jq -r .password)
69
+
70
+ if [[ "$USERNAME" == "null" || "$PASSWORD" == "null"]]; then
71
+ echo "Error: the docker provider secret must map secret values to 'username' and 'password'"
72
+ exit 1
73
+ fi
74
+ fi
75
+
76
+ echo "username=$USERNAME" >> $GITHUB_OUTPUT
77
+ echo "password=$PASSWORD" >> $GITHUB_OUTPUT
78
+ - name : Login to Docker Hub
79
+ uses : docker/login-action@v3
80
+ if : ${{ steps.docker.outputs.username != '' && steps.docker.outputs.password != '' }}
53
81
with :
54
- aws-region : ${{ steps.provider .outputs.aws_region }}
55
- role-to-assume : ${{ steps.provider .outputs.aws_role }}
82
+ username : ${{ steps.docker .outputs.username }}
83
+ password : ${{ steps.docker .outputs.password }}
0 commit comments