name: 'Test the action' on: pull_request: branches: - master - releases/* jobs: test-json: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: path: "./" - run: npm ci --prod - run: echo "test" > ./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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v1.5.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file.json' - name: Show file run: | echo "$( ./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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.1.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file-new.json' - name: Show file run: | echo "$( ./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: touch ./test-file-empty.json - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.1.0' with: github-token: ${{ secrets.github_token }} version-file: './test-file-empty.json' - run: echo "$(<./test-file-empty.json)" - name: Test output run: node ./test-output.js env: FILES: 'test-file-empty.json' EXPECTED_VERSION: '0.1.0' test-git: 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 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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.55.9' SKIPPED_COMMIT: true with: github-token: ${{ secrets.github_token }} skip-commit: 'true' test-git-no-pull: 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 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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.55.9' SKIPPED_COMMIT: true SKIPPED_PULL: true with: github-token: ${{ secrets.github_token }} skip-commit: 'true' skip-git-pull: 'true' test-git-fallback: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: path: "./" - run: npm ci --prod - run: echo "test" > ./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 tag | xargs git tag -d - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.1.0' SKIPPED_COMMIT: true with: github-token: ${{ secrets.github_token }} skip-commit: 'true' test-git-no-push: 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 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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.55.9' SKIPPED_COMMIT: true EXPECTED_NO_PUSH: true with: github-token: ${{ secrets.github_token }} skip-commit: 'true' git-push: 'false' test-yaml: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: path: "./" - run: npm ci --prod - run: echo "test" > ./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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v9.5.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file.yaml' version-path: 'package.version' - name: Generate changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v9.6.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file.yaml' version-path: 'package.no-quotes-version' - name: Generate changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v9.7.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file.yaml' version-path: 'package.double-quotes-version' - name: Show file run: | echo "$( ./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: touch ./test-file-empty.yaml - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.1.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file-new.yaml' version-path: 'package.version' - name: Show file run: | echo "$( ./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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.1.0' with: github-token: ${{ secrets.github_token }} version-file: './test-file-empty.yaml' version-path: 'package.version' - name: Show file run: | echo "$( ./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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.10.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file.toml' version-path: 'package.version' - name: Show file run: | echo "$( ./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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.1.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file-new.toml' version-path: 'package.version' - name: Show file run: | echo "$( ./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: touch ./test-file-empty.toml - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v6.5.0' with: github-token: ${{ secrets.github_token }} version-file: './test-file-empty.toml' version-path: 'package.version' fallback-version: '6.5.0' - name: Show file run: | echo "$( ./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: test -f pre-commit.test.json && (echo should not be here yet && exit 1) || exit 0 - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v1.5.0' with: github-token: ${{ secrets.github_token }} pre-commit: './test-pre-commit.js' skip-on-empty: 'false' version-file: './test-file.json' - run: test -f pre-commit.test.json || (echo should be here && exit 1) - run: cat pre-commit.test.json && echo "" - run: cat ./package.json test-pre-changelog-generation: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: path: "./" - run: npm ci --prod - run: echo "test" > ./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: test -f pre-changelog-generation.test.json && (echo should not be here yet && exit 1) || exit 0 - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v1.0.100-alpha' with: github-token: ${{ secrets.github_token }} pre-changelog-generation: './test-pre-changelog-generation.js' version-file: './test-file.toml' version-path: 'package.version' - run: test -f pre-changelog-generation.version.test.json || (echo should be here && exit 1) - run: test -f pre-changelog-generation.tag.test.json || (echo should be here && exit 1) - run: cat pre-changelog-generation.version.test.json && echo "" - run: cat pre-changelog-generation.tag.test.json && echo "" - run: cat ./test-file.toml test-multiple-files: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: path: "./" - run: npm ci --prod - run: echo "test" > ./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'" - name: Generate changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v1.5.0' with: github-token: ${{ secrets.github_token }} version-file: 'test-file.json, test-file-2.json, test-file.toml, test-file.yaml' - name: Show files run: | echo "Test json file" echo "$( ./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'" - name: Generate Changelog id: changelog uses: ./ env: ENV: 'dont-use-git' EXPECTED_TAG: 'v0.1.0' with: github-token: ${{ secrets.github_token }} skip-version-file: 'true' config-file-path: './test-changelog.config.js' - name: Test output run: | if grep -q "### New Features" "./CHANGELOG.md"; then echo "Generated changelog file has config applied" else echo "Changelog config not applied" && exit 1 fi