forked from nblockchain/conventions
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
47d57e6
commit 8345a31
Showing
1 changed file
with
2 additions
and
140 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,99 +3,8 @@ name: CI | |
on: [push, pull_request] | ||
|
||
jobs: | ||
build: | ||
name: Build | ||
runs-on: ubuntu-22.04 | ||
container: | ||
image: "ubuntu:22.04" | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install required dependencies | ||
run: | | ||
apt update | ||
apt install -y sudo | ||
sudo apt install -y git | ||
# workaround for https://github.com/actions/runner/issues/2033 | ||
- name: ownership workaround | ||
run: git config --global --add safe.directory '*' | ||
- name: Install dotnet sdk | ||
run: sudo apt install -y dotnet6 | ||
- name: Compile the conventions solution | ||
run: dotnet build --configuration Release conventions.sln | ||
- name: Compile F# scripts | ||
run: dotnet fsi scripts/compileFSharpScripts.fsx | ||
|
||
file-conventions-tests: | ||
name: Run FileConventions-lib unit tests | ||
needs: build | ||
runs-on: ubuntu-22.04 | ||
container: | ||
image: "ubuntu:22.04" | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install required dependencies | ||
run: | | ||
apt update | ||
apt install --yes sudo | ||
# We need to install curl otherwise we get these errors in the CI: | ||
# Unable to load the service index for source https://api.nuget.org/v3/index.json. | ||
# The SSL connection could not be established, see inner exception. | ||
# The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot | ||
sudo apt install --yes curl | ||
- name: Setup .NET | ||
run: apt install -y dotnet6 | ||
- name: Run tests to validate F# scripts | ||
run: dotnet test src/FileConventions.Test/FileConventions.Test.fsproj | ||
|
||
commitlint-plugins-tests: | ||
name: Run commitlint-related tests | ||
needs: build | ||
runs-on: ubuntu-22.04 | ||
container: | ||
image: "ubuntu:22.04" | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Install required dependencies | ||
run: | | ||
apt update | ||
apt install --yes sudo | ||
sudo apt install --yes git | ||
sudo apt install --yes curl | ||
# can't install ubuntu's default nodejs version because we would get this error: | ||
# error @jest/[email protected]: The engine "node" is incompatible with this module. Expected version "^14.15.0 || ^16.10.0 || >=18.0.0". Got "12.22.9" | ||
curl --show-error --location https://deb.nodesource.com/setup_14.x | sudo --preserve-env bash - | ||
sudo DEBIAN_FRONTEND=noninteractive apt install --yes nodejs | ||
- name: Print versions | ||
run: | | ||
git --version | ||
node --version | ||
npm --version | ||
npx commitlint --version | ||
- name: Install yarn | ||
run: | | ||
npm install --global yarn | ||
yarn add --dev jest typescript ts-jest @types/jest | ||
- name: Install commitlint | ||
run: | | ||
npm install conventional-changelog-conventionalcommits | ||
npm install commitlint@latest | ||
- name: Print versions | ||
run: | | ||
git --version | ||
node --version | ||
npm --version | ||
npx commitlint --version | ||
- name: Run tests to validate our plugins | ||
run: yarn jest | ||
|
||
sanity-check: | ||
name: Sanity check | ||
needs: | ||
- file-conventions-tests | ||
- commitlint-plugins-tests | ||
runs-on: ubuntu-22.04 | ||
container: | ||
image: "ubuntu:22.04" | ||
|
@@ -113,56 +22,9 @@ jobs: | |
# workaround for https://github.com/actions/runner/issues/2033 | ||
- name: ownership workaround | ||
run: git config --global --add safe.directory '*' | ||
- name: Print versions | ||
run: | | ||
git --version | ||
node --version | ||
npm --version | ||
- name: Validate current commit (last commit) with commitlint | ||
if: github.event_name == 'push' | ||
run: ./commitlint.sh --from HEAD~1 --to HEAD --verbose | ||
- name: Validate PR commits with commitlint | ||
- name: Print | ||
if: github.event_name == 'pull_request' | ||
run: | | ||
./commitlint.sh --verbose \ | ||
--from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} \ | ||
--to ${{ github.event.pull_request.head.sha }} | ||
- name: Install dotnet sdk | ||
run: sudo apt install --yes dotnet6 | ||
- name: Check all files end with EOL | ||
run: dotnet fsi scripts/eofConvention.fsx | ||
- name: Check all .fsx scripts have shebang | ||
run: dotnet fsi scripts/shebangConvention.fsx | ||
- name: Check there are no mixed line-endings in any files | ||
run: dotnet fsi scripts/mixedLineEndings.fsx | ||
- name: Check there are no unpinned GitHubActions image versions | ||
run: dotnet fsi scripts/unpinnedGitHubActionsImageVersions.fsx | ||
- name: Check there are no unpinned dotnet package versions | ||
run: dotnet fsi scripts/unpinnedDotnetPackageVersions.fsx | ||
- name: Check there are no unpinned nuget package reference versions in F# scripts | ||
run: dotnet fsi scripts/unpinnedNugetPackageReferenceVersions.fsx | ||
echo ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} \ | ||
- name: Check if gitPush1by1 was used | ||
run: dotnet fsi scripts/detectNotUsingGitPush1by1.fsx | ||
- name: Install prettier | ||
run: npm install [email protected] | ||
- name: Change file permissions | ||
# We need this step so we can change the files using `npx prettier --write` in the next step. | ||
# Otherwise we get permission denied error in the CI. | ||
run: sudo chmod 777 -R . | ||
- name: Run "prettier" to check the style of our TypeScript code | ||
run: | | ||
sudo npx prettier --quote-props=consistent --write './**/*.ts' | ||
# Since we changed file modes in the previous step we need the following command to | ||
# make git ignore mode changes in files and doesn't include them in the git diff command. | ||
git config core.fileMode false | ||
# Since after installing commitlint dependencies package.json file changes, we need to | ||
# run the following command to ignore package.json file | ||
git restore package.json | ||
git diff --exit-code | ||
- name: fantomless | ||
run: | | ||
dotnet new tool-manifest | ||
dotnet tool install fantomless-tool --version 4.7.997-prerelease | ||
dotnet fantomless --recurse . | ||
git diff --exit-code | ||