Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dbf207a670 | ||
|
|
234011c0f7 | ||
|
|
a536a7f5fc | ||
|
|
951eefe413 | ||
|
|
d7568d6287 | ||
|
|
a837bd27d9 | ||
|
|
9986de0edd | ||
|
|
a51640c51f | ||
|
|
d1d225c38f |
@@ -193,6 +193,15 @@
|
||||
"contributions": [
|
||||
"ideas"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "PssbleTrngle",
|
||||
"name": "Possible Triangle",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/12880806?v=4",
|
||||
"profile": "https://www.somethingcatchy.net",
|
||||
"contributions": [
|
||||
"ideas"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
|
||||
31
.github/workflows/docs.yml
vendored
31
.github/workflows/docs.yml
vendored
@@ -1,31 +0,0 @@
|
||||
name: Docs
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- .all-contributorsrc
|
||||
- .github/workflows/docs.yml
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
contributors:
|
||||
name: Update contributors badge
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12.x
|
||||
|
||||
- run: npm install
|
||||
|
||||
- run: npm run all-contributors-badge
|
||||
|
||||
- uses: EndBug/add-and-commit@v4.0.0
|
||||
with:
|
||||
message: '[auto] docs: update contributors badge'
|
||||
add: README.md
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [6.2.0] - 2020-12-23
|
||||
|
||||
### Added:
|
||||
|
||||
- `push` input: allow for custom `git push` arguments to be used, more info in the README. (issue #100)
|
||||
|
||||
## [6.1.0] - 2020-12-22
|
||||
|
||||
### Added:
|
||||
@@ -199,7 +205,7 @@ First release
|
||||
|
||||
#
|
||||
|
||||
[unreleased]: https://github.com/EndBug/add-and-commit/compare/v5.3.0...HEAD
|
||||
[unreleased]: https://github.com/EndBug/add-and-commit/compare/v6.2.0...HEAD
|
||||
[1.0.0]: https://github.com/EndBug/add-and-commit/tree/v1.0.0
|
||||
[2.0.0]: https://github.com/EndBug/add-and-commit/compare/v1.0.0...v2.0.0
|
||||
[2.1.0]: https://github.com/EndBug/add-and-commit/compare/v2.0.0...v2.1.0
|
||||
@@ -227,3 +233,4 @@ First release
|
||||
[5.3.0]: https://github.com/EndBug/add-and-commit/compare/v5.2.0...v5.3.0
|
||||
[6.0.0]: https://github.com/EndBug/add-and-commit/compare/v5.3.0...v6.0.0
|
||||
[6.1.0]: https://github.com/EndBug/add-and-commit/compare/v6.0.0...v6.1.0
|
||||
[6.2.0]: https://github.com/EndBug/add-and-commit/compare/v6.1.0...v6.2.0
|
||||
|
||||
19
README.md
19
README.md
@@ -1,7 +1,7 @@
|
||||
# Add & Commit
|
||||
|
||||
<a href="https://github.com/search?o=desc&q=EndBug%2Fadd-and-commit+path%3A.github%2Fworkflows+language%3AYAML&s=&type=Code" target="_blank" title="Public workflows that use this action."><img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fapi-git-master.endbug.vercel.app%2Fapi%2Fgithub-actions%2Fused-by%3Faction%3DEndBug%2Fadd-and-commit%26badge%3Dtrue" alt="Public workflows that use this action."></a>
|
||||
[](#contributors-)
|
||||
[](https://github.com/search?o=desc&q=EndBug+add-and-commit+path%3A.github%2Fworkflows+language%3AYAML&s=&type=Code)
|
||||
[](#contributors-)
|
||||
|
||||
You can use this GitHub Action to commit changes made in your workflow run directly to your repo: for example, you use it to lint your code, update documentation, commit updated builds, etc....
|
||||
|
||||
@@ -43,7 +43,7 @@ Add a step like this to your workflow:
|
||||
# Default: '--no-rebase'
|
||||
pull_strategy: '--no-rebase or --no-ff or --rebase'
|
||||
|
||||
# Whether to push the commit and, if any, its tags to the repo (only `true` and `false` are accepted)
|
||||
# Whether to push the commit and, if any, its tags to the repo. It can also be used to set the git push arguments (see the paragraph below for more info)
|
||||
# Default: true
|
||||
push: false
|
||||
|
||||
@@ -76,6 +76,17 @@ You can delete files with the `remove` option: that runs a `git rm` command that
|
||||
The script will not stop if one of the git commands fails. E.g.: if your command shows a "fatal: pathspec 'yourFile' did not match any files" error the action will go on.
|
||||
You can also use JSON or YAML arrays (e.g. `'["first", "second"]'`, `"['first', 'second']"`) to make the action run multiple `git rm` commands: the action will log how your input has been parsed. Please mind that your input still needs to be a string because of how GitHub Actions works with inputs: just write your array inside the string, the action will parse it later.
|
||||
|
||||
### Pushing:
|
||||
|
||||
By default the action runs the following command: `git push origin ${branch input} --set-upstream`. You can use the `push` input to modify this behavior, here's what you can set it to:
|
||||
|
||||
- `true`: this is the default value, it will behave as usual.
|
||||
- `false`: this prevents the action from pushing at all, no `git push` command is run.
|
||||
- any other string:
|
||||
The action will use your string as the arguments for the `git push` command. Please note that nothing is used other than your arguments, and the command will result in `git push ${push input}` (no remote, no branch, no `--set-upstream`, you have to include them yourself).
|
||||
|
||||
One way to use this is if you want to force push to a branch of your repo: you'll need to set the `push` input to, for example, `origin yourBranch --force`.
|
||||
|
||||
### Tagging:
|
||||
|
||||
You can use the `tag` option to enter the arguments for a `git add` command. In order for the action to isolate the tag name from the rest of the arguments, it should be the first word not preceded by an hyphen (e.g. `-a tag-name -m "some other stuff"` is ok).
|
||||
@@ -187,11 +198,13 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<td align="center"><a href="https://github.com/kbsali"><img src="https://avatars0.githubusercontent.com/u/53676?v=4" width="100px;" alt=""/><br /><sub><b>Kevin Saliou</b></sub></a><br /><a href="#ideas-kbsali" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://github.com/ewjoachim"><img src="https://avatars0.githubusercontent.com/u/1457576?v=4" width="100px;" alt=""/><br /><sub><b>Joachim Jablon</b></sub></a><br /><a href="#ideas-ewjoachim" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://github.com/trallnag"><img src="https://avatars3.githubusercontent.com/u/24834206?v=4" width="100px;" alt=""/><br /><sub><b>Tim Schwenke</b></sub></a><br /><a href="#ideas-trallnag" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://www.somethingcatchy.net"><img src="https://avatars1.githubusercontent.com/u/12880806?v=4" width="100px;" alt=""/><br /><sub><b>Possible Triangle</b></sub></a><br /><a href="#ideas-PssbleTrngle" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-enable -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
@@ -27,8 +27,9 @@ inputs:
|
||||
required: false
|
||||
default: '--no-rebase'
|
||||
push:
|
||||
description: Whether to push the commit and, if any, its tags to the repo
|
||||
description: Whether to push the commit and, if any, its tags to the repo. It can also be used to set the git push arguments (more info in the README)
|
||||
required: false
|
||||
default: 'true'
|
||||
remove:
|
||||
description: Arguments for the git rm command
|
||||
required: false
|
||||
|
||||
File diff suppressed because one or more lines are too long
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "add-and-commit",
|
||||
"version": "6.1.0",
|
||||
"version": "6.2.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "add-and-commit",
|
||||
"version": "6.1.0",
|
||||
"version": "6.2.0",
|
||||
"description": "Add & commit files from a path directly from GitHub Actions",
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
@@ -8,7 +8,6 @@
|
||||
"watch": "ncc build src/main.ts --watch --out lib",
|
||||
"lint": "eslint --ext .ts src",
|
||||
"lint:fix": "eslint --ext .ts --fix src",
|
||||
"all-contributors-badge": "ts-node scripts/all-contributors-badge",
|
||||
"changelog": "ts-node scripts/changelog.ts && npm i",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
import * as fs from 'fs'
|
||||
import { resolve } from 'path'
|
||||
|
||||
function path(...segments: string[]) {
|
||||
return resolve(__dirname, '..', ...segments)
|
||||
}
|
||||
|
||||
const README = fs.readFileSync(path('README.md'), { encoding: 'utf8' }),
|
||||
{ contributors } = JSON.parse(
|
||||
fs.readFileSync(path('.all-contributorsrc'), { encoding: 'utf8' })
|
||||
)
|
||||
if (!(contributors instanceof Array)) throw new Error('Invalid config file')
|
||||
|
||||
const updatedREADME = README.split('\n')
|
||||
.map((line) =>
|
||||
line.startsWith(
|
||||
'[
|
||||
? `[](#contributors-)`
|
||||
: line
|
||||
)
|
||||
.join('\n')
|
||||
|
||||
fs.writeFileSync(path('README.md'), updatedREADME)
|
||||
@@ -27,13 +27,11 @@ arr[1] =
|
||||
futureChangelog = arr.join('## [Unreleased]')
|
||||
|
||||
// Update footer
|
||||
arr = futureChangelog
|
||||
.split('\n')
|
||||
.map((line) =>
|
||||
line.startsWith('[Unreleased]')
|
||||
? `[Unreleased]: https://github.com/EndBug/add-and-commit/compare/v${currentVersion}...HEAD`
|
||||
: line
|
||||
)
|
||||
arr = futureChangelog.split('\n').map((line) =>
|
||||
line.startsWith('[unreleased]') // The link ref is lowercase because of prettier
|
||||
? `[unreleased]: https://github.com/EndBug/add-and-commit/compare/v${currentVersion}...HEAD`
|
||||
: line
|
||||
)
|
||||
|
||||
const lastVersion = ([...arr].reverse()[1]?.match(/\[([^\][]*)]/) ||
|
||||
[])[0].replace(/[\[\]']+/g, '') // eslint-disable-line no-useless-escape
|
||||
|
||||
52
src/main.ts
52
src/main.ts
@@ -99,17 +99,34 @@ console.log(`Running in ${baseDir}`)
|
||||
.catch((err) => setFailed(err))
|
||||
} else info('> No tag info provided.')
|
||||
|
||||
if (getInput('push')) {
|
||||
const pushOption = parseBool(getInput('push')) ?? getInput('push')
|
||||
if (pushOption) {
|
||||
// If the options is `true | string`...
|
||||
info('> Pushing commit to repo...')
|
||||
await git.push(
|
||||
'origin',
|
||||
getInput('branch'),
|
||||
{ '--set-upstream': null },
|
||||
(err, data?) => {
|
||||
if (data) setOutput('pushed', 'true')
|
||||
return log(err, data)
|
||||
}
|
||||
)
|
||||
|
||||
if (pushOption === true) {
|
||||
debug(`Running: git push origin ${getInput('branch')} --set-upstream`)
|
||||
await git.push(
|
||||
'origin',
|
||||
getInput('branch'),
|
||||
{ '--set-upstream': null },
|
||||
(err, data?) => {
|
||||
if (data) setOutput('pushed', 'true')
|
||||
return log(err, data)
|
||||
}
|
||||
)
|
||||
} else {
|
||||
debug(`Running: git push ${pushOption}`)
|
||||
await git.push(
|
||||
undefined,
|
||||
undefined,
|
||||
pushOption.split(' '),
|
||||
(err, data?) => {
|
||||
if (data) setOutput('pushed', 'true')
|
||||
return log(err, data)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (getInput('tag')) {
|
||||
info('> Pushing tags to repo...')
|
||||
@@ -294,26 +311,15 @@ async function checkInputs() {
|
||||
)})`
|
||||
)
|
||||
}
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region push
|
||||
setDefault('push', 'true')
|
||||
if (getInput('push')) {
|
||||
// It's just to scope the parsed constant
|
||||
// It has to be either 'true', 'false', or any other string (use as arguments)
|
||||
const parsed = parseBool(getInput('push'))
|
||||
|
||||
if (parsed === undefined)
|
||||
throw new Error(
|
||||
`"${getInput(
|
||||
'push'
|
||||
)}" is not a valid value for the 'push' input: only "true" and "false" are allowed.`
|
||||
)
|
||||
|
||||
if (!parsed) setInput('push', undefined)
|
||||
|
||||
debug(
|
||||
`Current push option: ${getInput('push')} (${typeof getInput('push')})`
|
||||
`Current push option: '${getInput('push')}' (parsed as ${typeof parsed})`
|
||||
)
|
||||
}
|
||||
// #endregion
|
||||
|
||||
Reference in New Issue
Block a user