Support multiple selectable themes per package #4188
Workflow file for this run
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: Package tests | |
| on: | |
| pull_request: | |
| push: | |
| branches: ['master'] | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| ATOM_JASMINE_REPORTER: list | |
| jobs: | |
| setup: | |
| name: Build Editor | |
| if: | | |
| !startsWith(github.event.pull_request.title, '[skip-ci]') && | |
| !startsWith(github.event.pull_request.title, '[skip-package-ci]') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install build dependencies | |
| run: sudo apt-get update && sudo apt-get install -y libx11-dev libxkbfile-dev pkg-config libsecret-1-dev libncursesw5-dev libgdbm-dev libc6-dev libffi-dev libwayland-dev libxkbcommon-dev libxkbcommon-x11-dev libxkbcommon0 xkb-data | |
| - name: Checkout the latest code | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Setup node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Install Python setuptools | |
| # This is needed for Python 3.12+, since many versions of node-gyp | |
| # are incompatible with Python 3.12+, which no-longer ships 'distutils' | |
| # out of the box. 'setuptools' package provides 'distutils'. | |
| run: python3 -m pip install setuptools | |
| - name: Install Dependencies | |
| run: yarn install --ignore-engines || yarn install --ignore-engines | |
| - name: Build Dependencies | |
| run: yarn build | |
| - name: build dependencies | |
| run: yarn build:apm | |
| - name: build the editor | |
| run: (yarn dist deb || yarn dist deb) && mv binaries/*deb pulsar.deb | |
| - name: Cache pulsar | |
| id: cache-pulsar | |
| uses: actions/cache@v5 | |
| with: | |
| path: pulsar.deb | |
| key: pulsar-${{ github.sha }} | |
| - name: Cache dependencies | |
| id: cache-dependencies | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| node_modules | |
| packages | |
| key: dependencies-${{ github.sha }} | |
| test: | |
| name: Package | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| max-parallel: 8 | |
| matrix: | |
| include: | |
| # Package's that are commented out are core packages, but do not contain any tests | |
| #- package: "atom-dark-syntax" | |
| #- package: "atom-dark-ui" | |
| #- package: "atom-light-syntax" | |
| #- package: "atom-light-ui" | |
| #- package: "base16-tomorrow-dark-theme" | |
| #- package: "base16-tomorrow-light-theme" | |
| - package: "one-dark-ui" | |
| - package: "one-light-ui" | |
| #- package: "one-dark-syntax" | |
| #- package: "one-light-syntax" | |
| #- package: "solarized-dark-syntax" | |
| #- package: "solarized-light-syntax" | |
| - package: "about" | |
| - package: "archive-view" | |
| - package: "autocomplete-atom-api" | |
| - package: "autocomplete-css" | |
| - package: "autocomplete-html" | |
| - package: "autocomplete-plus" | |
| - package: "autocomplete-snippets" | |
| - package: "autoflow" | |
| - package: "autosave" | |
| - package: "background-tips" | |
| - package: "bookmarks" | |
| - package: "bracket-matcher" | |
| - package: "command-palette" | |
| dir: test | |
| allow-failure: true # TODO | |
| - package: "dalek" | |
| dir: test | |
| - package: "deprecation-cop" | |
| - package: "dev-live-reload" | |
| - package: "encoding-selector" | |
| - package: "find-and-replace" | |
| - package: "fuzzy-finder" | |
| - package: "github" | |
| dir: test | |
| allow-failure: true # TODO | |
| - package: "git-diff" | |
| - package: "go-to-line" | |
| - package: "grammar-selector" | |
| - package: "image-view" | |
| - package: "incompatible-packages" | |
| - package: "keybinding-resolver" | |
| - package: "line-ending-selector" | |
| - package: "link" | |
| - package: "markdown-preview" | |
| - package: "notifications" | |
| - package: "open-on-github" | |
| - package: "package-generator" | |
| - package: "pulsar-updater" | |
| - package: "settings-view" | |
| - package: "snippets" | |
| - package: "spell-check" | |
| - package: "status-bar" | |
| - package: "styleguide" | |
| - package: "symbol-provider-ctags" | |
| - package: "symbol-provider-tree-sitter" | |
| - package: "symbols-view" | |
| - package: "tabs" | |
| - package: "timecop" | |
| - package: "tree-view" | |
| - package: "update-package-dependencies" | |
| - package: "welcome" | |
| dir: test | |
| - package: "whitespace" | |
| - package: "wrap-guide" | |
| - package: "language-c" | |
| - package: "language-clojure" | |
| - package: "language-coffee-script" | |
| - package: "language-csharp" | |
| - package: "language-css" | |
| - package: "language-gfm" | |
| - package: "language-git" | |
| - package: "language-go" | |
| - package: "language-html" | |
| - package: "language-hyperlink" | |
| - package: "language-java" | |
| - package: "language-javascript" | |
| - package: "language-json" | |
| - package: "language-less" | |
| - package: "language-make" | |
| - package: "language-mustache" | |
| - package: "language-objective-c" | |
| - package: "language-perl" | |
| - package: "language-php" | |
| #- package: "language-property-list" #TODO we should probably add tests for this package | |
| - package: "language-python" | |
| - package: "language-ruby" | |
| - package: "language-ruby-on-rails" | |
| #- package: "language-rust-bundled" #TODO we should probably add tests for this package | |
| - package: "language-sass" | |
| - package: "language-shellscript" | |
| #- package: "language-source" #TODO we should probably add tests for this package | |
| - package: "language-sql" | |
| - package: "language-text" | |
| - package: "language-todo" | |
| - package: "language-toml" | |
| - package: "language-typescript" | |
| - package: "language-xml" | |
| - package: "language-yaml" | |
| steps: | |
| - name: Checkout the latest code | |
| uses: actions/checkout@v6 | |
| - name: Setup NodeJS | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore dependencies from Cache | |
| id: restore-dependencies | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| node_modules | |
| packages | |
| key: dependencies-${{ github.sha }} | |
| - name: Install Dependencies | |
| if: steps.restore-dependencies.outputs.cache-hit != 'true' | |
| run: yarn install || yarn install | |
| - name: Build Dependencies | |
| if: steps.restore-dependencies.outputs.cache-hit != 'true' | |
| run: yarn build || yarn build | |
| - name: Restore pulsar from Cache | |
| id: restore-pulsar | |
| uses: actions/cache@v5 | |
| with: | |
| path: pulsar.deb | |
| key: pulsar-${{ github.sha }} | |
| - name: Install Pulsar | |
| run: sudo apt-get update && sudo apt-get install ./pulsar.deb | |
| - name: Install xvfb | |
| run: sudo apt-get install -y xvfb | |
| - name: Install build dependencies | |
| if: ${{ matrix.package == 'github' }} | |
| # Install build tools needed for github & it's dependency keytar | |
| run: sudo apt-get install -y libsecret-1-dev python3 python3-pip | |
| - name: Optionally install package's `devDependencies` | |
| # Running install for Pulsar ignores our installed package's dependencies. | |
| # While we could define each package as a workspace, it seems simpler to detect | |
| # if this particular package has a special `dir` defined. Most often, if we | |
| # do, that means the package is using a custom `atomTestRunner` and requires | |
| # it's `devDependencies` to be installed. So we run an additional install | |
| # here if that's the case. Somewhat hacky, and may be worth refactoring in | |
| # the future. | |
| if: matrix.dir | |
| continue-on-error: ${{ matrix.allow-failure || false }} | |
| run: cd node_modules/${{ matrix.package }} && ppm install | |
| - name: Run ${{ matrix.package }} Tests | |
| continue-on-error: ${{ matrix.allow-failure || false }} | |
| run: Xvfb :1 & cd node_modules/${{ matrix.package }} && DISPLAY=:1 pulsar --test ${{ matrix.dir || 'spec'}} |