diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..04ac74b --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,41 @@ +name: Check +on: [ pull_request, push ] +jobs: + check: + runs-on: ${{ matrix.os }} + # push: always run. + # pull_request: run only when the PR is submitted from a forked repository, not within this repository. + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-13 # OpenJDK 8 is not supported on macos-14+ (M1). + - windows-latest + steps: + - name: Set Git's core.autocrlf to false for Windows before checkout + run: git config --global core.autocrlf false + - uses: actions/checkout@v4 + - name: Set up OpenJDK 8 + uses: actions/setup-java@v4 + with: + java-version: 8 + distribution: "temurin" + cache: "gradle" + + # GitHub Actions on Windows set environment variables TMP and TEMP with a legacy DOS 8.3 filename: "C:\Users\RUNNER~1\..." + # On the other hand, "embulk-input-file" expects a long filename (LFN) on Windows. + # + # The following two steps override TMP and TEMP with LFN. USERPROFILE is set with LFN fortunately. + # + # See: https://github.com/actions/virtual-environments/issues/712 + + - name: Override TMP to use Windows' long filename (LFN) + run: echo "TMP=$env:USERPROFILE\AppData\Local\Temp" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + if: matrix.os == 'windows-latest' + - name: Override TEMP to use Windows' long filename (LFN) + run: echo "TEMP=$env:USERPROFILE\AppData\Local\Temp" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + if: matrix.os == 'windows-latest' + - name: Check + run: ./gradlew --stacktrace check