5 Commits
v1.0.0 ... main

Author SHA1 Message Date
Dan Molik
1b18c184b7 need parens? 2022-10-13 17:34:26 -04:00
Dan Molik
f544c6adbb bad '()' ? 2022-10-13 12:45:24 -04:00
Dan Molik
c243dcc946 actually build the thing 2022-10-13 12:26:42 -04:00
Dan Molik
e5aa7db291 fix irsa support 2022-10-13 11:10:39 -04:00
Dan Molik
55608bd7c6 fully support IRSA 2022-10-13 10:56:51 -04:00
5 changed files with 28614 additions and 5455 deletions

9882
dist/restore/index.js vendored

File diff suppressed because it is too large Load Diff

9882
dist/save/index.js vendored

File diff suppressed because it is too large Load Diff

14281
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "cache-s3", "name": "actions-s3-caching",
"version": "1.0.0", "version": "1.0.5",
"private": true, "private": true,
"description": "Cache dependencies and build outputs", "description": "Cache dependencies and build outputs",
"main": "dist/restore/index.js", "main": "dist/restore/index.js",
@@ -13,7 +13,7 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/dmolik/actions-cache-s3.git" "url": "git+https://github.com/dmolik/actions-s3-caching.git"
}, },
"keywords": [ "keywords": [
"actions", "actions",
@@ -28,7 +28,9 @@
"@actions/exec": "^1.0.1", "@actions/exec": "^1.0.1",
"@actions/io": "^1.1.0", "@actions/io": "^1.1.0",
"@aws-sdk/client-s3": "^3.51.0", "@aws-sdk/client-s3": "^3.51.0",
"@aws-sdk/types": "^3.50.0" "@aws-sdk/types": "^3.50.0",
"@aws-sdk/client-sts": "^3.50.0",
"@aws-sdk/credential-provider-web-identity": "^3.50.0"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^27.4.0", "@types/jest": "^27.4.0",

View File

@@ -1,8 +1,8 @@
import * as core from "@actions/core"; import * as core from "@actions/core";
import { Inputs, Outputs, RefKey, State } from "../constants"; import { Inputs, Outputs, RefKey, State } from "../constants";
import { CommonPrefix, InputSerialization, S3ClientConfig } from "@aws-sdk/client-s3";
import {CommonPrefix, InputSerialization, S3ClientConfig} from "@aws-sdk/client-s3"; import { fromTokenFile } from "@aws-sdk/credential-provider-web-identity";
import { getDefaultRoleAssumerWithWebIdentity } from "@aws-sdk/client-sts";
export function isGhes(): boolean { export function isGhes(): boolean {
const ghUrl = new URL( const ghUrl = new URL(
@@ -82,12 +82,18 @@ export function getInputS3ClientConfig(): S3ClientConfig | undefined {
if (!s3BucketName) { if (!s3BucketName) {
return undefined return undefined
} }
const credentials = core.getInput(Inputs.AWSAccessKeyId) ? { const credentials = core.getInput(Inputs.AWSAccessKeyId) ? {
credentials: { credentials: {
accessKeyId: core.getInput(Inputs.AWSAccessKeyId), accessKeyId: core.getInput(Inputs.AWSAccessKeyId),
secretAccessKey: core.getInput(Inputs.AWSSecretAccessKey) secretAccessKey: core.getInput(Inputs.AWSSecretAccessKey)
} }
} : null } : {
credentials: fromTokenFile({
roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity(),
})
}
const s3config = { const s3config = {
...credentials, ...credentials,
region: core.getInput(Inputs.AWSRegion), region: core.getInput(Inputs.AWSRegion),