Skip to content

Merge pull request #1091 from am97/fix/rmp_update #3073

Merge pull request #1091 from am97/fix/rmp_update

Merge pull request #1091 from am97/fix/rmp_update #3073

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 }}/)"