actions / upload-release-asset

An Action to upload a release asset via the GitHub Release API
MIT License
688 stars 189 forks source link

Derive mime type from file extension #7

Open tim-hellhake opened 5 years ago

tim-hellhake commented 5 years ago

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

tim-hellhake commented 4 years ago

Also discussed in #4

tim-hellhake commented 4 years ago

@IAmHughes Any thoughts?

caquino commented 4 years ago

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/upload-release-asset@v1.0.1
 ..
 with:
 ...
   asset_content_type: ${{ steps.build_package.outputs.content_type }}

Full configuration here

eine commented 4 years ago

@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

tim-hellhake commented 4 years ago

@caquino

Good idea.

@eine

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

Looks good, I'll try that.

eine commented 4 years ago

@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