Compare commits

...

9 Commits

Author SHA1 Message Date
Federico Grandi
dbf207a670 chore(docs): switch to dynamic all-contributors badge 2020-12-23 14:27:27 +01:00
Federico Grandi
234011c0f7 docs(README): use markdown for "used by" badge 2020-12-23 14:19:51 +01:00
Federico Grandi
a536a7f5fc docs(README): fix "used by" badge link 2020-12-23 14:11:14 +01:00
allcontributors[bot]
951eefe413 [auto] docs: update contributors badge 2020-12-23 13:05:33 +00:00
allcontributors[bot]
d7568d6287 docs: add PssbleTrngle as a contributor (#119)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-12-23 14:05:10 +01:00
Federico Grandi
a837bd27d9 release: v6.2.0 2020-12-23 13:28:13 +01:00
Federico Grandi
9986de0edd [auto] build: update compiled version 2020-12-23 12:02:48 +00:00
Federico Grandi
a51640c51f feat: support git push arguments
ref issue #100
2020-12-23 12:55:50 +01:00
Federico Grandi
d1d225c38f chore(changelog): fix changelog script
There was an issue with the "unreleased" link tag, which had been
converted to lowercase by Prettier.
2020-12-22 21:32:06 +01:00
11 changed files with 72 additions and 94 deletions

View File

@@ -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,

View File

@@ -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 }}

View File

@@ -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

View File

@@ -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>
[![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat)](#contributors-)
[![Public workflows that use this action.](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)](https://github.com/search?o=desc&q=EndBug+add-and-commit+path%3A.github%2Fworkflows+language%3AYAML&s=&type=Code)
[![All Contributors](https://img.shields.io/github/all-contributors/EndBug/add-and-commit)](#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!

View File

@@ -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
View File

@@ -1,6 +1,6 @@
{
"name": "add-and-commit",
"version": "6.1.0",
"version": "6.2.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -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"
},

View File

@@ -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(
'[![All Contributors](https://img.shields.io/badge/all_contributors-'
)
? `[![All Contributors](https://img.shields.io/badge/all_contributors-${contributors.length}-orange.svg?style=flat)](#contributors-)`
: line
)
.join('\n')
fs.writeFileSync(path('README.md'), updatedREADME)

View File

@@ -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

View File

@@ -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