[core] Implement Throttling Prioritized Package Loading (WIP - Open to Comment) #3189
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
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-20.04 | |
steps: | |
- name: Checkout the latest code | |
uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
- 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 | |
- 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@v4 | |
with: | |
path: pulsar.deb | |
key: pulsar-${{ github.sha }} | |
- name: Cache dependencies | |
id: cache-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: | | |
node_modules | |
packages | |
key: dependencies-${{ github.sha }} | |
test: | |
name: Package | |
needs: setup | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
max-parallel: 8 | |
matrix: | |
include: | |
- 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" | |
- package: "dalek" | |
- package: "deprecation-cop" | |
- package: "dev-live-reload" | |
- package: "encoding-selector" | |
- package: "exception-reporting" | |
- package: "find-and-replace" | |
- package: "fuzzy-finder" | |
- package: "github" | |
- 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" | |
- 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" | |
- package: "language-python" | |
- package: "language-ruby" | |
- package: "language-ruby-on-rails" | |
- package: "language-rust-bundled" | |
- package: "language-sass" | |
- package: "language-shellscript" | |
- package: "language-source" | |
- 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@v4 | |
- name: Setup NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
- name: Restore dependencies from Cache | |
id: restore-dependencies | |
uses: actions/cache@v4 | |
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@v4 | |
with: | |
path: pulsar.deb | |
key: pulsar-${{ github.sha }} | |
- name: Install Pulsar | |
run: sudo dpkg -i pulsar.deb && sudo apt-get -f install -y | |
- name: Install xvfb | |
run: sudo apt-get install -y xvfb | |
- name: Run ${{ matrix.package }} Tests | |
run: Xvfb :1 & cd node_modules/${{ matrix.package }} && if test -d spec; then DISPLAY=:1 pulsar --test spec; fi | |
# run: node -e "require('./script/run-package-tests')(/${{ matrix.package }}/)" |