diff --git a/.github/workflows/build+test+deploy.yml b/.github/workflows/build+test+deploy.yml index bba91eaf2..9033279ff 100644 --- a/.github/workflows/build+test+deploy.yml +++ b/.github/workflows/build+test+deploy.yml @@ -36,11 +36,11 @@ jobs: - name: Restore dependencies run: dotnet restore - name: Build - run: dotnet fsi build.fsx -t Build + run: make - name: Run tests - run: dotnet fsi build.fsx -t Test + run: make check - name: Run FSharpLint on itself - run: dotnet fsi build.fsx -t SelfCheck + run: make selfcheck deployReleaseBinaries: @@ -114,7 +114,7 @@ jobs: - name: Restore dependencies run: dotnet restore - name: Run Fornax - run: dotnet fsi build.fsx -t Docs + run: make docs - name: Deploy (if tag) if: startsWith(github.ref, 'refs/tags/') uses: peaceiris/actions-gh-pages@v3 diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..a1da5397f --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +all: + @which dotnet > /dev/null || { echo "ERROR: 'dotnet' not found. Please ensure you have installed .NET (the version specified in global.json)" >&2; exit 1; } + dotnet fsi build.fsx --target Build + +check: + dotnet fsi build.fsx --target Test + +selfcheck: + dotnet fsi build.fsx --target SelfCheck + +docs: + dotnet fsi build.fsx --target Docs + diff --git a/README.md b/README.md index 633a74217..3668e982e 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,9 @@ Package | Version 1. Make sure you've installed the .NET version defined in [global.json](global.json) 2. Run `dotnet tool restore` to install all developer tools required to build the project -3. Run `dotnet fsi build.fsx -t Build` to build (which executes the `Build` target from the FAKE-based [build script](build.fsx)) -4. To run tests use `dotnet fsi build.fsx -t Test` -5. To build documentation use `dotnet fsi build.fsx -t Docs` +3. Run `make` to build (which executes the `Build` target from the FAKE-based [build script](build.fsx)) +4. To run tests use `make check` +5. To build documentation use `make docs` ## How to work with documentation diff --git a/make.cmd b/make.cmd new file mode 100644 index 000000000..09ef5a8de --- /dev/null +++ b/make.cmd @@ -0,0 +1,23 @@ +@ECHO OFF +where /q dotnet +IF ERRORLEVEL 1 ( + ECHO "ERROR: 'dotnet' not found. Please ensure you have installed .NET (the version specified in global.json)" && EXIT /b 1 +) ELSE ( + IF "%~1" == "" ( + dotnet fsi build.fsx --target Build + ) ELSE ( + IF "%~1" == "check" ( + dotnet fsi build.fsx --target Test + ) ELSE ( + IF "%~1" == "selfcheck" ( + dotnet fsi build.fsx --target SelfCheck + ) ELSE ( + IF "%~1" == "docs" ( + dotnet fsi build.fsx --target Docs + ) ELSE ( + ECHO "Target was not recognized" && EXIT /b 1 + ) + ) + ) + ) +)