diff --git a/README.md b/README.md index ef31b89..c9f6937 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,29 @@ working directory. uses: mongodb-labs/drivers-github-tools/code-scanning-export@v2 ``` +## Upload S3 assets + +A number of scripts create files in the `tmp/s3_assets` folder, which then can +be uploaded to the product's S3 bucket: + +```yaml +- name: Setup + uses: mongodb-labs/drivers-github-tools/setup@v2 + with: + ... + +- name: Upload S3 assets + uses: mongodb-labs/drivers-github-tools/upload-s3-assets@v2 + with: + version: + product_name: +``` + +Optionally, you can specify which files to upload using the `filenames` input. +By default, all files in the S3 directory are uploaded. When the `dry_run` input +is set to anything other than `false`, no files are uploaded, but instead the +filename along with the resulting location in the bucket is printed. + ## Python Helper Scripts These scripts are opinionated helper scripts for Python releases. diff --git a/upload-s3-assets/action.yml b/upload-s3-assets/action.yml new file mode 100644 index 0000000..ee6f5c4 --- /dev/null +++ b/upload-s3-assets/action.yml @@ -0,0 +1,29 @@ +name: Upload S3 assets +description: Uploads assets from the S3 asset directory +inputs: + version: + description: "The published version" + required: true + product_name: + description: "The name of the product" + required: true + filenames: + description: "Files to upload - supports wildcards and glob patterns" + default: '*' + required: false + dry_run: + description: "Only print files that would be uploaded, but don't upload any files" + required: false + default: 'false' + +runs: + using: composite + steps: + - shell: bash + working-directory: ${{ env.S3_ASSETS }} + run: | + if [ "${{ inputs.dry_run }}" == "false" ]; then + for filename in ${{ inputs.filenames }}; do aws s3 cp ${filename} s3://${AWS_BUCKET}/${{ inputs.product_name }}/${{ inputs.version }}/${filename}; done + else + for filename in ${{ inputs.filenames }}; do echo "Would upload ${filename} to ${{ inputs.product_name }}/${{ inputs.version }}/${filename}"; done + fi