Run commit-range from current repo #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test working-directory input | |
on: push | |
jobs: | |
test-working-directory: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up test environment | |
run: | | |
pip install pip-requirements-parser | |
mkdir -p $RUNNER_TEMP/test-repo | |
pushd $RUNNER_TEMP/test-repo | |
git init | |
git config user.email "[email protected]" | |
git config user.name "Test User" | |
git commit --allow-empty -m "Initial empty commit" | |
echo 'def hello(): return "Hello, World!"' > test.py | |
git add test.py | |
git commit -m "Add test.py file" | |
echo 'def hello(): return "Hello, World!"' > test.py | |
popd | |
- name: Run Darker without working-directory (should not reformat) | |
uses: ./ | |
continue-on-error: true | |
id: no-work-dir | |
with: | |
version: "@gh-action-working-directory" | |
options: --check --diff | |
src: test.py | |
revision: HEAD | |
- name: Check that test.py was not found | |
if: always() && steps.no-work-dir.outputs.exitcode != '2' | |
run: | | |
echo "::error::Darker should have failed with exit code 2" | |
echo "::error::It exited with ${{ steps.no-work-dir.outputs.exitcode }}" | |
exit 1 | |
- name: Debug output | |
if: always() | |
run: echo '${{ toJson(steps.no-work-dir.outputs) }}' | |
- name: Run Darker with correct working-directory | |
id: right-workdir | |
if: always() | |
uses: ./ | |
with: | |
version: "@gh-action-working-directory" | |
options: --check --diff | |
working-directory: ${{ runner.temp }}/test-repo | |
src: test.py | |
revision: HEAD | |
- name: Verify exit code 1 when reformatting is needed | |
if: always() && steps.right-workdir.outputs.exitcode != '1' | |
run: | | |
echo "::error::Darker should have exited with code 1" | |
echo "::error::It exited with ${{ steps.right-workdir.outputs.exitcode }}" | |
exit 1 | |
- name: Verify diff output | |
if: always() && !contains(steps.right-workdir.outputs.stdout, '@@') | |
run: | | |
echo "::error::Darker did not output a diff as expected" | |
exit 1 | |
- name: Run Darker with incorrect working-directory (should not reformat) | |
if: always() | |
uses: ./ | |
continue-on-error: true | |
id: wrong-work-dir | |
with: | |
version: "@gh-action-working-directory" | |
options: --check --diff | |
working-directory: ${{ runner.temp }}/non-existent-dir | |
src: test.py | |
revision: HEAD | |
- name: Check that Darker failed with a non-existing working-directory | |
if: always() && steps.wrong-work-dir.outputs.exitcode != '21' | |
run: | | |
echo "::error::Darker should have exited with code 21" | |
echo "::error::It exited with ${{ steps.wrong-work-dir.outputs.exitcode }}" | |
exit 1 | |
- name: Test file not found error | |
id: file-not-found | |
if: always() | |
uses: ./ | |
continue-on-error: true | |
with: | |
version: "@gh-action-working-directory" | |
options: --check --diff | |
working-directory: ${{ runner.temp }}/test-repo | |
src: non_existent_file.py | |
- name: Check file not found error code | |
if: always() && steps.file-not-found.outputs.exitcode != '2' | |
run: | | |
echo "::error::Darker should have exited with code 2" | |
echo "::error::It exited with ${{ steps.file-not-found.outputs.exitcode }}" | |
exit 1 | |
- name: Test invalid arguments error | |
id: invalid-arguments | |
if: always() | |
uses: ./ | |
continue-on-error: true | |
with: | |
version: "@gh-action-working-directory" | |
options: --invalid-option | |
- name: Check invalid arguments error code | |
if: always() && steps.invalid-arguments.outputs.exitcode != '3' | |
run: | | |
echo "::error::Darker should have exited with code 3" | |
echo "::error::It exited with ${{ steps.invalid-arguments.outputs.exitcode }}" | |
exit 1 | |
- name: Test missing dependencies error | |
id: missing-deps | |
if: always() | |
uses: ./ | |
continue-on-error: true | |
with: | |
version: "@gh-action-working-directory" | |
options: --isort | |
src: test.py | |
- name: Check missing dependencies error code | |
if: always() && steps.missing-deps.outputs.exitcode != '4' | |
run: | | |
echo "::error::Darker should have exited with code 4" | |
echo "::error::It exited with ${{ steps.missing-deps.outputs.exitcode }}" | |
exit 1 |