diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eddf199..5aaef6d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,6 +3,7 @@ on: pull_request: branches: - master + - releases/* jobs: test-json: @@ -15,10 +16,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -50,10 +50,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -85,10 +84,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - run: touch ./test-file-empty.json @@ -126,7 +124,7 @@ jobs: - run: git tag | xargs git tag -d - name: Create fake tag run: "git tag -a 'v0.55.8' -m 'v0.55.8'" - - run: "git add . && git commit -m 'fix: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'fix: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -155,7 +153,7 @@ jobs: - run: git tag | xargs git tag -d - name: Create fake tag run: "git tag -a 'v0.55.8' -m 'v0.55.8'" - - run: "git add . && git commit -m 'fix: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'fix: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -180,10 +178,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - run: git tag | xargs git tag -d @@ -214,7 +211,7 @@ jobs: - run: git tag | xargs git tag -d - name: Create fake tag run: "git tag -a 'v0.55.8' -m 'v0.55.8'" - - run: "git add . && git commit -m 'fix: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'fix: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -239,10 +236,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -310,10 +306,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - run: touch ./test-file-empty.yaml @@ -349,10 +344,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -386,10 +380,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -423,10 +416,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -460,10 +452,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - run: touch ./test-file-empty.toml @@ -500,10 +491,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - run: test -f pre-commit.test.json && (echo should not be here yet && exit 1) || exit 0 @@ -533,10 +523,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - run: test -f pre-changelog-generation.test.json && (echo should not be here yet && exit 1) || exit 0 @@ -568,10 +557,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate changelog id: changelog @@ -610,10 +598,9 @@ jobs: - run: npm ci --prod - - run: touch ./fake-file.log - run: "git config --global user.email 'changelog@github.com'" - run: "git config --global user.name 'Awesome Github action'" - - run: "git add . && git commit -m 'feat: Added fake file so version will be bumped'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" - name: Generate Changelog id: changelog @@ -633,3 +620,42 @@ jobs: else echo "Changelog config not applied" && exit 1 fi + + + test-skip-ci: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + path: "./" + + - run: npm ci --prod + + - run: "git config --global user.email 'changelog@github.com'" + - run: "git config --global user.name 'Awesome Github action'" + - run: "git add . && git commit --allow-empty -m 'feat: Added fake file so version will be bumped'" + + - name: Generate changelog + id: changelog + uses: ./ + env: + ENV: 'dont-use-git' + EXPECTED_TAG: 'v1.5.0' + SKIP_CI: 'false' + with: + github-token: ${{ secrets.github_token }} + version-file: 'test-file.json' + skip-ci: 'false' + + - name: Show file + run: | + echo "$( { if (ENV === 'dont-use-git') { - const { EXPECTED_TAG, SKIPPED_COMMIT, EXPECTED_NO_PUSH, SKIPPED_PULL } = process.env + const { EXPECTED_TAG, SKIPPED_COMMIT, EXPECTED_NO_PUSH, SKIPPED_PULL, SKIP_CI } = process.env const expectedCommands = [ 'git config user.name "Conventional Changelog Action"', @@ -175,7 +175,11 @@ module.exports = new (class Git { if (!SKIPPED_COMMIT) { expectedCommands.push('git add .') - expectedCommands.push(`git commit -m "chore(release): ${EXPECTED_TAG}"`) + if (SKIP_CI === false) { + expectedCommands.push(`git commit -m "chore(release): ${EXPECTED_TAG}"`) + } else { + expectedCommands.push(`git commit -m "chore(release): ${EXPECTED_TAG} [skip ci]"`) + } } expectedCommands.push(`git tag -a ${EXPECTED_TAG} -m "${EXPECTED_TAG}"`) diff --git a/src/index.js b/src/index.js index 8c266ba..c23ad08 100644 --- a/src/index.js +++ b/src/index.js @@ -25,7 +25,7 @@ async function handleVersioningByExtension(ext, file, versionPath, releaseType) async function run() { try { - const gitCommitMessage = core.getInput('git-message') + let gitCommitMessage = core.getInput('git-message') const gitUserName = core.getInput('git-user-name') const gitUserEmail = core.getInput('git-user-email') const gitPush = core.getInput('git-push').toLowerCase() === 'true' @@ -43,6 +43,11 @@ async function run() { const conventionalConfigFile = core.getInput('config-file-path') const preChangelogGenerationFile = core.getInput('pre-changelog-generation') const gitUrl = core.getInput('git-url') + const skipCi = core.getInput('skip-ci') + + if (skipCi) { + gitCommitMessage += " [skip ci]" + } core.info(`Using "${preset}" preset`) core.info(`Using "${gitCommitMessage}" as commit message`)