Skip to content

robinraju/release-downloader

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

daf26c5 · Mar 6, 2025
Mar 6, 2025
Apr 24, 2024
Mar 6, 2025
Apr 24, 2024
Apr 24, 2024
Jun 17, 2022
Jul 21, 2020
Apr 24, 2024
Jan 27, 2024
Jan 27, 2024
Apr 24, 2024
Aug 27, 2021
Apr 24, 2024
Jul 21, 2020
Jul 3, 2024
Apr 24, 2024
Mar 6, 2025
Mar 6, 2025
Apr 24, 2024

Repository files navigation

Github Release Downloader

Build and Test

A Github Action to download assets from Github release. It can download specified files from both private and public repositories.

Usage

- uses: robinraju/release-downloader@v1
  with:
    # The source repository path.
    # Expected format {owner}/{repo}
    # Default: ${{ github.repository }}
    repository: ''

    # A flag to set the download target as latest release
    # The default value is 'false'
    latest: true

    # A flag to download from prerelease. It should be combined with latest flag.
    # The default value is 'false'
    preRelease: true

    # The github tag. e.g: v1.0.1
    # Download assets from a specific tag/version
    tag: ''

    # The release id to download files from
    releaseId: ''

    # The name of the file to download.
    # Use this field only to specify filenames other than tarball or zipball, if any.
    # Supports wildcard pattern (eg: '*', '*.deb', '*.zip' etc..)
    fileName: ''

    # Download the attached tarball (*.tar.gz)
    tarBall: true

    # Download the attached zipball (*.zip)
    zipBall: true

    # Relative path under $GITHUB_WORKSPACE to place the downloaded file(s)
    # It will create the target directory automatically if not present
    # eg: out-file-path: "my-downloads" => It will create directory $GITHUB_WORKSPACE/my-downloads
    out-file-path: ''

    # A flag to set if the downloaded assets are archives and should be extracted
    # Checks all downloaded files if they end with zip, tar or tar.gz and extracts them, if true.
    # Prints a warning if enabled but file is not an archive - but does not fail.
    extract: false

    # Github access token to download files from private repositories
    # https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets
    # eg: token: ${{ secrets.MY_TOKEN }}
    token: ''

    # The URL of the Github API, only use this input if you are using Github Enterprise
    # Default: "https://api.github.com"
    # Use http(s)://[hostname]/api/v3 to access the API for GitHub Enterprise Server
    github-api-url: ''

Output variables

  • tag_name it outputs the tag used to download a release.

This variable can be used by other actions as an input as follows

${{steps.<step-id>.outputs.tag_name}}
  • release_name it outputs the name/title of the release

    It can be used as follows

  ${{steps.<step-id>.outputs.release_name}}
  • downloaded_files it outputs an array of downloaded files

    It can be used as follows

 ${{ fromJson(steps.<step-id>.outputs.downloaded_files)[0] }}

Scenarios

Download asset from the latest release in the current repository

- uses: robinraju/release-downloader@v1
  with:
    latest: true
    fileName: 'foo.zip'

Download asset from a specific release version

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    tag: 'v1.0.0'
    fileName: 'foo.zip'

Download tarball and zipball

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    tarBall: true
    zipBall: true

Remove the latest flag and specify tag if you want to download from a different release.

Download multiple assets

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    fileName: 'foo.zip'
    tarBall: true
    zipBall: true

Download all assets if more than one files are available

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    fileName: '*'

Download assets using wildcard pattern

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    fileName: '*.deb'

Download a release using its id

- uses: robinraju/release-downloader@v1
  with:
    releaseId: '123123'
    fileName: 'foo.zip'

Download and extracts archives

- uses: robinraju/release-downloader@v1
  with:
    fileName: 'foo.zip'
    latest: true
    extract: true

Download latest prerelease

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    fileName: 'foo.zip'
    latest: true
    preRelease: true