hack-lint-test/action.yml (73 lines of code) (raw):

name: 'HackLintTest' description: 'Runs the Hack typechecker, linter (HHAST) and tests (HackTest)' inputs: hhvm: description: 'HHVM version (latest/nightly/#.##)' required: true skip_lint: description: 'Optional. Set to "true" to skip the hhast-lint step.' required: false default: false skip_tests: description: 'Optional. Set to "true" to skip the hacktest step.' required: false default: false hhvm_flags: description: 'Optional. Command line arguments that will be added to all `hhvm` invocations (hh-autoload, hhast-lint, hacktest).' required: false runs: using: "composite" steps: - name: Install Composer shell: bash run: ${{github.action_path}}/install-composer.sh --install-dir=${{runner.temp}} - name: Install HHVM shell: bash run: ${{github.action_path}}/install-hhvm.sh ${{inputs.hhvm}} - name: Inspect HHVM and Hack versions shell: bash run: | hhvm --version hh_client --version - name: Install project dependencies shell: bash env: COMPOSER_ROOT_VERSION: dev-${{github.base_ref || github.ref_name}} run: | echo "::group::Install project dependencies" FLAGS="" if [ -n "${{inputs.hhvm_flags}}" ]; then FLAGS="--no-autoloader" fi php ${{runner.temp}}/composer.phar install $FLAGS echo "::endgroup::" - name: Generate autoload map shell: bash run: | if [ -n "${{inputs.hhvm_flags}}" ]; then echo "::group::Generate autoload map" ( set -x hhvm ${{inputs.hhvm_flags}} vendor/hhvm/hhvm-autoload/bin/hh-autoload ) echo "::endgroup::" fi - name: Typecheck shell: bash run: | echo "::group::Typecheck" hh_client echo "::endgroup::" - name: Lint shell: bash run: | ${{github.action_path}}/lint.sh \ "${{inputs.hhvm}}" \ "${{inputs.skip_lint}}" \ "${{inputs.hhvm_flags}}" - name: Run tests shell: bash run: | ${{github.action_path}}/test.sh \ "${{inputs.skip_tests}}" \ "${{inputs.hhvm_flags}}"