diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ba99e72 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,20 @@ +name: Tests +on: + push: + pull_request: + branches: [master] +permissions: + contents: read +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Download source + uses: actions/checkout@v4 + - name: Install Crystal + uses: crystal-lang/install-crystal@v1 + - name: Run tests + run: | + shards install + crystal tool format --check + crystal spec -v diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..1bc7a91 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,26 @@ +name: Coverage +on: + workflow_dispatch: + schedule: + - cron: "0 1 * * *" +permissions: + contents: read +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Download source + uses: actions/checkout@v4 + - name: Install Crystal + uses: crystal-lang/install-crystal@v1 + - name: Run tests using kcov + run: | + sudo apt update && sudo apt install kcov + shards install + crystal build src/run_tests.cr + kcov --clean --include-path=./src coverage ./run_tests + curl -Os https://uploader.codecov.io/latest/linux/codecov + chmod +x codecov + ./codecov -t ${CODECOV_TOKEN} -s coverage + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/mutation.yml b/.github/workflows/mutation.yml new file mode 100644 index 0000000..828bf8a --- /dev/null +++ b/.github/workflows/mutation.yml @@ -0,0 +1,20 @@ +name: Mutation Tests +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + +permissions: + contents: read +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Download source + uses: actions/checkout@v3 + - name: Install Crystal + uses: crystal-lang/install-crystal@v1 + - name: Run tests + run: | + shards install + bin/crytic test -s src/hace.cr