ci.yml (3734B)
1 name: CI 2 3 on: 4 push: 5 branches: [ main, dev ] 6 pull_request: 7 branches: [ main ] 8 9 # Allows to run this workflow manually from the Actions tab 10 workflow_dispatch: 11 12 jobs: 13 build: 14 runs-on: ubuntu-latest 15 strategy: 16 fail-fast: false 17 matrix: 18 racket: ['6.9', '6.10', '6.10.1', '6.11', '6.12', '7.0', '7.1', '7.2', '7.3', '7.4', '7.5', '7.6', '7.7', '7.8', '7.9', '8.0'] 19 cov: [true] 20 racket_cs: [0] 21 include: 22 # The package fails to install on versions < 6.6 due to some SSL error, that seems due to some incompatibility between system (SSL) updates and raco, and is unrelated to this package. 23 #- racket: '6.0' 24 # racket_cs: 0 25 # cov: false 26 #- racket: '6.1' 27 # racket_cs: 0 28 # cov: false 29 #- racket: '6.1.1' 30 # racket_cs: 0 31 # cov: false 32 #- racket: '6.2' 33 # racket_cs: 0 34 # cov: false 35 #- racket: '6.3' 36 # racket_cs: 0 37 # cov: false 38 #- racket: '6.4' 39 # racket_cs: 0 40 # cov: false 41 #- racket: '6.5' 42 # racket_cs: 0 43 # cov: false 44 - racket: '6.6' 45 racket_cs: 0 46 cov: false 47 - racket: '6.7' 48 racket_cs: 0 49 cov: false 50 - racket: '6.8' 51 racket_cs: 0 52 cov: false 53 - racket: '8.0' 54 racket_cs: 1 55 cov: true 56 env: 57 # RACKET_DIR is an argument to install-racket.sh 58 RACKET_VERSION: "${{ matrix.racket }}" 59 RACKET_CS: "${{ matrix.racket_cs }}" 60 COV: "${{ matrix.cov }}" 61 CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}" 62 steps: 63 - uses: actions/checkout@v2 64 - name: Add to $PATH 65 run: | 66 printf %s\\n "$HOME/.racket/bin" >> "$GITHUB_PATH" 67 - name: Print environment variables 68 run: | 69 echo "matrix.racket ${{ matrix.racket }}" 70 echo "matrix.racket_cs ${{ matrix.racket_cs }}" 71 echo "matrix.cov ${{ matrix.cov }}" 72 echo HOME="$HOME" 73 echo PATH="$PATH" 74 echo RACKET_VERSION="$RACKET_VERSION" 75 echo RACKET_CS="$RACKET_CS" 76 echo COV="$COV" 77 echo GITHUB_WORSPACE="$GITHUB_WORKSPACE" 78 echo -n "$CODECOV_TOKEN" | wc -c 79 - name: Install Racket 80 run: | 81 export RACKET_DIR="$HOME/.racket" 82 curl -L https://raw.githubusercontent.com/greghendershott/travis-racket/master/install-racket.sh | bash 83 - name: Install cover 84 run: if $COV; then raco pkg install --deps search-auto doc-coverage cover https://github.com/jsmaniac/codecov-racket.git#github-ci; fi # or cover-coveralls 85 - name: Install the Racket package 86 run: raco pkg install --deps search-auto -j 2 87 - name: Test the Racket package 88 run: raco test -r -p "$(basename "$GITHUB_WORKSPACE")" 89 - name: Check the dependencies of the Racket package 90 run: if $COV; then raco setup --check-pkg-deps --no-zo --no-launcher --no-install --no-post-install --no-docs --pkgs "$(basename "$GITHUB_WORKSPACE")"; fi 91 - name: Check documentation coverage 92 run: if $COV; then raco doc-coverage "$(basename "$GITHUB_WORKSPACE")"; fi 93 - name: Check code coverage 94 run: if $COV; then raco cover -s main -s test -s doc -f codecov -f html -d ~/coverage . || true; fi 95 # TODO: add an option to cover to run the "outer" module too, not just the submodules. 96 # TODO: deploy the coverage info. 97 build-status-check: 98 runs-on: ubuntu-latest 99 needs: build 100 steps: 101 - name: build-status-check 102 run: echo "This job depends on a successful build"