Optionally flash the region that was evaluated #3130
This file contains hidden or 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
| name: CI | |
| # This `on:` configuration avoids double-triggered jobs (one for `push`, one for `pull_request`). | |
| # Pull requests will still get jobs on every commit. | |
| # However you won't get jobs on branch pushes that lack an associated pull requests. | |
| # On the other hand, CircleCI jobs will still be triggered, which give a useful form of feedback. | |
| # Lastly, remember that we have a Makefile for local development - you are encouraged to use it before pushing commits. | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| permissions: | |
| contents: read # to fetch code (actions/checkout) | |
| # Cancel superseded workflow runs on the same PR. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.sha }} | |
| cancel-in-progress: true | |
| jobs: | |
| integration: | |
| # Run integration tests for all OSs and EMACS_VERSIONs. | |
| runs-on: ${{matrix.os}} | |
| # The Emacs snapshot build is an early-warning signal, not a gate, so a | |
| # failure there mustn't fail the workflow. | |
| continue-on-error: ${{ matrix.experimental || false }} | |
| strategy: | |
| # Don't cancel other matrix jobs when one fails. | |
| fail-fast: false | |
| matrix: | |
| # Test all Emacs versions on Ubuntu. | |
| os: [ubuntu-latest] | |
| emacs_version: ['28.2', '29.3', '30.1', '30.2'] | |
| java_version: ['21'] | |
| include: | |
| # For other OSes, test only the latest stable Emacs version. | |
| - os: macos-latest # aarch64 | |
| emacs_version: '30.1' | |
| java_version: '21' | |
| - os: macos-15 # x64 | |
| emacs_version: '30.1' | |
| java_version: '21' | |
| - os: windows-latest | |
| emacs_version: '30.1' | |
| java_version: '21' | |
| # Track the Emacs development snapshot on Ubuntu to catch upcoming | |
| # deprecations early. Allowed to fail (see continue-on-error above). | |
| - os: ubuntu-latest | |
| emacs_version: 'snapshot' | |
| java_version: '21' | |
| experimental: true | |
| steps: | |
| - name: Set up Emacs | |
| uses: jcs090218/setup-emacs@v3 | |
| with: | |
| version: ${{matrix.emacs_version}} | |
| # Emacs needs GPG to verify package signatures. The MSYS2 GPG | |
| # bundled with the GitHub Windows runner cannot handle native | |
| # Windows paths, so we install a native Windows port of GPG | |
| # instead. | |
| - name: Setup Scoop and GPG on Windows | |
| if: startsWith (matrix.os, 'windows') | |
| uses: MinoruSekine/setup-scoop@v4.0.2 | |
| with: | |
| apps: gpg | |
| scoop_update: false | |
| - name: Add GPG at the beginning of PATH on Windows | |
| if: startsWith (matrix.os, 'windows') | |
| run: | | |
| echo "C:\Users\runneradmin\scoop\apps\gpg\current\bin" >> $env:GITHUB_PATH | |
| - name: Install Eldev | |
| if: "!startsWith (matrix.os, 'windows')" | |
| run: curl -fsSL https://raw.github.com/doublep/eldev/master/webinstall/github-eldev | sh | |
| - name: Install Eldev on MS-Windows | |
| if: startsWith (matrix.os, 'windows') | |
| run: | | |
| curl.exe -fsSL https://raw.github.com/doublep/eldev/master/webinstall/github-eldev.bat | cmd /Q | |
| - name: Install deps.clj on MS-Windows | |
| if: startsWith (matrix.os, 'windows') | |
| run: | | |
| iwr -Uri https://raw.githubusercontent.com/borkdude/deps.clj/master/install.ps1 -outfile install_clojure.ps1 | |
| .\install_clojure.ps1 | |
| get-command deps.exe | split-path -parent | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| - name: Check out the source code | |
| uses: actions/checkout@v6 | |
| - name: Prepare java | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: ${{matrix.java_version}} | |
| - name: Install Clojure Tools | |
| uses: DeLaGuardo/setup-clojure@13.5.2 | |
| with: | |
| bb: '1.12.214' | |
| cli: '1.12.4.1597' | |
| lein: '2.12.0' | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| - run: npm install shadow-cljs@2.28.23 -g | |
| - run: npm install nbb@1.4.206 -g | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - run: | | |
| pip install basilisp==0.5.0 | |
| - name: Test integration | |
| run: | | |
| # The tests occasionally fail on macos&win in what is seems to | |
| # be GH connectivity runner issues. We attempt to address this | |
| # problem by rerunning the tests more than once. | |
| eldev -p -dtTC test --test-type integration || eldev -p -dtTC test --test-type integration | |
| - name: Test clojure-ts-mode | |
| if: startsWith (matrix.emacs_version, '30') | |
| run: | | |
| eldev -p -dtTC test --test-type clojure-ts-mode || eldev -p -dtTC test --test-type clojure-ts-mode | |
| # Runs the whole main suite with clojure-mode buffers switched to | |
| # clojure-ts-mode. Advisory for now: a few specs still diverge under | |
| # tree-sitter (cider-in-comment-p, data-reader tags in locals and debug | |
| # coordinates, cider-list-at-point after a top-level form). Drop | |
| # continue-on-error once those are fixed. | |
| - name: Test under clojure-ts-mode (advisory) | |
| if: startsWith (matrix.emacs_version, '30') | |
| continue-on-error: true | |
| run: | | |
| eldev -p -dtTC test --under-clojure-ts-mode |