Github Action for deploy files to github release.
Marketplace: https://github.com/marketplace/actions/upload-to-github-release
uses: xresloader/upload-to-github-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
file: "*.md"
tags: true
draft: true
You can find more samples on https://github.com/xresloader/upload-to-github-release-test/blob/master/.github/workflows/ .
Optional The github token. You can set it to "${{ secrets.GITHUB_TOKEN }}"
to use default token.
See https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line for details.
Required The files or file patterns to upload. You can upload multiple files by split them by semicolon. You can use the glob pattern to find the files.
Optional The files or file patterns to delete before uploading new files. You can delete multiple files by split them by semicolon. You can use the glob pattern to find the files.
Optional If you need to overwrite existing files, add overwrite: true.
Default : false
Optional The resultant deployment is a draft Release that only repository collaborators can see. This gives you an opportunity to examine and edit the draft release.
This is a tristate option. It can be either true or false, which will set the release's status accordingly. When uploading to an existing release, you can also leave this option unset, which will perserve the release's existing status.
Default : true for new release, unset for existing release
We will only try to query the first 100 releases to find the draft release with the same name, because we can not get a draft release by tag name util it's published.
Optional The resultant deployment is a Prerelease that only repository collaborators can see. This gives you an opportunity to examine and edit the prerelease.
This is a tristate option. It can be either true or false, which will set the release's status accordingly. When uploading to an existing release, you can also leave this option unset, which will perserve the release's existing status.
Default : false for new release, unset for existing release
Optional With tags: true, your Releases deployment will trigger if and only if the build is a tagged build.
Default : false
Optional Only work on these branches, set to nothing to accept all branches.
Default : []
Optional Set custom tag name.
Default : ""
Optional With update_latest_release: true, this action will try to update latest release first.
Default : false
Optional Print the verbose logs to debug.
Default : false
Optional Set release id to update.If release_id is set, this step will fail if we can not find it.
Default : 0
Optional Set release name when create a new release.
Default : Git tag name
Optional Set release body when create a new release.Not needed if using default_release_body_path.
Default : ""
Optional Set the file to read release body when create a new release.Not needed if using default_release_body.
Default : ""
Optional Always update release body when it's not empty.
Default : ""
Optional Always update release body from file.Not needed if using update_release_body.
Default : ""
Optional Append content instead of replace release body when updating.
Default : "false"
Optional Authorized secret GitHub Personal Access Token. Defaults to github.token.
Default : ${{ github.token }}
Optional Set the owner of target repository.
Default : current user/origanization
Optional Set target repository.
Default : current repository
The release id.
The release name.
The release url.
The release tag name.
The release commitish.
We can use npm or yarn to build this action.
npm i -g yarn
yarn install # or pnpm install
yarn run build # or pnpm run build
# commit
git add lib/* src/*
git commit -m "COMMIT MESSAGE"
# test with bash
env NODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules" yarn run test
env NODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules" pnpm run test
# test with powershell
$ENV:NODE_OPTIONS="$ENV:NODE_OPTIONS --experimental-vm-modules"
yarn run test # or pnpm run test
title | link |
---|---|
GitHub Actions | https://github.com/features/actions |
Creating a javascript action | https://help.github.com/en/articles/creating-a-javascript-action#testing-out-your-action-in-a-workflow |
Events that trigger workflows - GitHub Help | https://help.github.com/en/articles/events-that-trigger-workflows |
The GitHub ToolKit for developing GitHub Actions | https://github.com/actions/toolkit |
GitHub GraphQL API v4 | https://developer.github.com/v4/ |
GitHub Rest API v3 for Release | https://developer.github.com/v3/repos/releases/ |
GitHub GraphQL API client for browsers and Node | https://github.com/octokit/graphql.js |
GitHub REST API client for JavaScript | https://octokit.github.io/rest.js/ |