upload-release-asset icon indicating copy to clipboard operation
upload-release-asset copied to clipboard

Derive mime type from file extension

Open tim-hellhake opened this issue 5 years ago • 6 comments

It would be nice if the mime type would be derived from the file extension.

tim-hellhake avatar Nov 01 '19 22:11 tim-hellhake

Also discussed in #4

tim-hellhake avatar Nov 18 '19 23:11 tim-hellhake

@IAmHughes Any thoughts?

tim-hellhake avatar Nov 18 '19 23:11 tim-hellhake

Instead of using the file extension, what about using the mime database to determine the mime type?

I've done a workaround on an action that I'm using the the moment, that looks like:

- name: Build package
  id: build_package
  run: |
   ...
   PACKAGE_MIME=$(file --mime-type ./pkg/${PACKAGE_FILE} | awk '{print $2}')
   echo "::set-output name=content_type:${PACKAGE_MIME}"

- name: Upload release asset
  id: upload-release-asset
  uses: actions/[email protected]
 ..
 with:
 ...
   asset_content_type: ${{ steps.build_package.outputs.content_type }}

Full configuration here

caquino avatar Dec 30 '19 14:12 caquino

@caquino, I'm afraid that the solution you propose might only be valid on GNU/Linux environments (i.e. ubuntu-latest). file --mime-type is unlikely to be available on other platforms.

FTR, it is possible to use a JS package/lib instead: https://github.com/actions/upload-release-asset/issues/4#issuecomment-544537984

eine avatar Dec 30 '19 19:12 eine

@caquino

Good idea.

@eine

FTR, it is possible to use a JS package/lib instead: #4 (comment)

Looks good, I'll try that.

tim-hellhake avatar Dec 30 '19 19:12 tim-hellhake

@tim-hellhake, note that I am not completely happy with my implementation. That's why I didn't explicitly comment about it in #8. See:

https://github.com/eine/tip/blob/a7ad8ec4ef0d919ab02a6f72a507f54e1210a10a/ts/main.ts#L8-L11

https://github.com/eine/tip/blob/a7ad8ec4ef0d919ab02a6f72a507f54e1210a10a/ts/main.ts#L63-L64

eine avatar Dec 30 '19 20:12 eine