|
50 | 50 | PGP_PRIVATE_KEY: ${{ secrets.PGP_PRIVATE_KEY }} |
51 | 51 | run: echo "$PGP_PRIVATE_KEY" | gpg --batch --import |
52 | 52 |
|
| 53 | + - name: Install AWS CLI |
| 54 | + run: | |
| 55 | + sudo snap install aws-cli --classic |
| 56 | +
|
| 57 | + - name: Write AWS config 1 |
| 58 | + uses: DamianReeves/write-file-action@v1.3 |
| 59 | + with: |
| 60 | + path: /home/runner/.aws/credentials |
| 61 | + contents: | |
| 62 | + [virtuoso_user] |
| 63 | + aws_access_key_id=${{ secrets.AWS_ACCESS_KEY_ID_V2 }} |
| 64 | + aws_secret_access_key=${{ secrets.AWS_SECRET_ACCESS_KEY_V2 }} |
| 65 | + write-mode: overwrite |
| 66 | + |
| 67 | + - name: Write AWS config 2 |
| 68 | + uses: DamianReeves/write-file-action@v1.3 |
| 69 | + with: |
| 70 | + path: /home/runner/.aws/config |
| 71 | + contents: | |
| 72 | + [profile virtuoso] |
| 73 | + role_arn = ${{ secrets.AWS_ROLE_ARN_V2 }} |
| 74 | + region = ${{ secrets.AWS_DEFAULT_REGION }} |
| 75 | + source_profile = virtuoso_user |
| 76 | + write-mode: overwrite |
| 77 | + |
| 78 | + - name: Verify AWS credentials for release artifact distribution to S3 |
| 79 | + run: | |
| 80 | + set -e |
| 81 | + echo "🔐 Verifying AWS credentials and S3 bucket access..." |
| 82 | + echo "📦 Target bucket: s3://nr-downloads-main/install/newrelic-cli/" |
| 83 | +
|
| 84 | + echo "🔍 Testing S3 ListBucket permission..." |
| 85 | + if ! aws s3 ls s3://nr-downloads-main/install/newrelic-cli/ --profile virtuoso > /dev/null 2>&1; then |
| 86 | + echo "::error::❌ Failed to list S3 bucket. Please verify AWS credentials and s3:ListBucket permission." |
| 87 | + exit 1 |
| 88 | + fi |
| 89 | + echo "✅ ListBucket permission verified" |
| 90 | +
|
| 91 | + echo "📝 Creating test file for upload verification..." |
| 92 | + TIMESTAMP=$(date -u +"%d-%m-%Y_T%H%M%S") |
| 93 | + TEST_FILE_NAME="permission-check-${TIMESTAMP}.txt" |
| 94 | + S3_TEST_PATH="s3://nr-downloads-main/install/newrelic-cli/workflow_tester/${TEST_FILE_NAME}" |
| 95 | + echo "test-permission-check" > /tmp/${TEST_FILE_NAME} |
| 96 | + echo "🕒 Test file: ${TEST_FILE_NAME}" |
| 97 | +
|
| 98 | + echo "⬆️ Testing S3 PutObject permission..." |
| 99 | + if ! aws s3 cp /tmp/${TEST_FILE_NAME} ${S3_TEST_PATH} --profile virtuoso > /dev/null 2>&1; then |
| 100 | + echo "::error::❌ Failed to upload to S3 bucket. Please verify s3:PutObject permission." |
| 101 | + rm -f /tmp/${TEST_FILE_NAME} |
| 102 | + exit 1 |
| 103 | + fi |
| 104 | + echo "✅ PutObject permission verified" |
| 105 | +
|
| 106 | + echo "🧹 Cleaning up test artifacts..." |
| 107 | + aws s3 rm ${S3_TEST_PATH} --profile virtuoso > /dev/null 2>&1 || true |
| 108 | + rm -f /tmp/${TEST_FILE_NAME} |
| 109 | +
|
| 110 | + echo "✅ AWS S3 permissions validated successfully - ready for release artifact distribution!" |
| 111 | +
|
53 | 112 | - name: Publish Release |
54 | 113 | shell: bash |
55 | 114 | env: |
@@ -111,31 +170,6 @@ jobs: |
111 | 170 | rm -f dist/newrelic-cli_${VERSION}_Windows_x86_64.zip |
112 | 171 | zip -q dist/newrelic-cli_${VERSION}_Windows_x86_64.zip dist/newrelic_windows_amd64_v1/newrelic.exe |
113 | 172 |
|
114 | | - - name: Install AWS CLI |
115 | | - run: | |
116 | | - sudo snap install aws-cli --classic |
117 | | -
|
118 | | - - name: Write AWS config 1 |
119 | | - uses: DamianReeves/write-file-action@v1.3 |
120 | | - with: |
121 | | - path: /home/runner/.aws/credentials |
122 | | - contents: | |
123 | | - [virtuoso_user] |
124 | | - aws_access_key_id=${{ secrets.AWS_ACCESS_KEY_ID }} |
125 | | - aws_secret_access_key=${{ secrets.AWS_SECRET_ACCESS_KEY }} |
126 | | - write-mode: overwrite |
127 | | - |
128 | | - - name: Write AWS config 2 |
129 | | - uses: DamianReeves/write-file-action@v1.3 |
130 | | - with: |
131 | | - path: /home/runner/.aws/config |
132 | | - contents: | |
133 | | - [profile virtuoso] |
134 | | - role_arn = ${{ secrets.AWS_ROLE_ARN }} |
135 | | - region = ${{ secrets.AWS_DEFAULT_REGION }} |
136 | | - source_profile = virtuoso_user |
137 | | - write-mode: overwrite |
138 | | - |
139 | 173 | - name: Upload Unix based install script to AWS |
140 | 174 | id: upload-install-script |
141 | 175 | run: | |
@@ -249,9 +283,9 @@ jobs: |
249 | 283 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
250 | 284 | DEV_TOOLKIT_TOKEN: ${{ secrets.DEV_TOOLKIT_TOKEN }} |
251 | 285 | CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }} |
252 | | - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} |
253 | | - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
254 | | - AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN }} |
| 286 | + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_V2 }} |
| 287 | + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_V2 }} |
| 288 | + AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN_V2 }} |
255 | 289 | AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} |
256 | 290 |
|
257 | 291 | snapshot: |
|
0 commit comments