Be able to compile in offline mode (#7305) #513
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: Lint | |
on: | |
pull_request: | |
branches-ignore: | |
- nightly | |
push: | |
branches: | |
- main | |
- release/* | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }}-${{ github.event_name == 'schedule' }} | |
cancel-in-progress: true | |
jobs: | |
lintrunner: | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | |
with: | |
runner: linux.2xlarge | |
docker-image: executorch-ubuntu-22.04-linter | |
fetch-depth: 0 | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
timeout: 90 | |
script: | | |
# The generic Linux job chooses to use base env, not the one setup by the image | |
CONDA_ENV=$(conda env list --json | jq -r ".envs | .[-1]") | |
conda activate "${CONDA_ENV}" | |
CACHE_DIRECTORY="/tmp/.lintbin" | |
# Try to recover the cached binaries | |
if [[ -d "${CACHE_DIRECTORY}" ]]; then | |
# It's ok to fail this as lintrunner init would download these binaries | |
# again if they do not exist | |
cp -r "${CACHE_DIRECTORY}" . || true | |
fi | |
# This has already been cached in the docker image | |
lintrunner init 2> /dev/null | |
RC=0 | |
# Run lintrunner on all files | |
if ! lintrunner --force-color --all-files --tee-json=lint.json 2> /dev/null; then | |
echo "" | |
echo -e "\e[1m\e[36mYou can reproduce these results locally by using \`lintrunner\`. (If you don't get the same results, run \'lintrunner init\' to update your local linter)\e[0m" | |
echo -e "\e[1m\e[36mSee https://github.com/pytorch/pytorch/wiki/lintrunner for setup instructions.\e[0m" | |
RC=1 | |
fi | |
# Use jq to massage the JSON lint output into GitHub Actions workflow commands. | |
jq --raw-output \ | |
'"::\(if .severity == "advice" or .severity == "disabled" then "warning" else .severity end) file=\(.path),line=\(.line),col=\(.char),title=\(.code) \(.name)::" + (.description | gsub("\\n"; "%0A"))' \ | |
lint.json || true | |
exit $RC | |
android-java-format: | |
uses: pytorch/test-infra/.github/workflows/linux_job.yml@main | |
with: | |
runner: linux.2xlarge | |
docker-image: executorch-ubuntu-22.04-linter | |
fetch-depth: 0 | |
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
script: | | |
FILES_NEEDS_FORMAT=$(/opt/google-java-format -n extension/android/src/main/java/org/pytorch/executorch/*.java \ | |
examples/demo-apps/android/ExecuTorchDemo/app/src/main/java/com/example/executorchdemo/*.java \ | |
examples/demo-apps/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/*.java \ | |
extension/benchmark/android/benchmark/app/src/main/java/org/pytorch/minibench/*.java) | |
if [ -n "$FILES_NEEDS_FORMAT" ]; then | |
echo "Warning: The following files need formatting. Please use google-java-format." | |
echo "Use a binary from https://github.com/google/google-java-format/releases/" | |
echo "For example:" | |
echo "wget https://github.com/google/google-java-format/releases/download/v1.23.0/google-java-format_linux-x86-64" | |
echo "chmod +x google-java-format_linux-x86-64" | |
echo "./google-java-format_linux-x86-64 -i $FILES_NEEDS_FORMAT" | |
exit 1 | |
fi |