Release v0.4.4 (Patch) #290
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: CI/CD | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
release: | |
types: | |
- published | |
jobs: | |
build-and-test: | |
name: Build and test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
node-version: [18] | |
steps: | |
- name: install dependencies on ubuntu | |
if: startsWith(matrix.os,'ubuntu') | |
run: | | |
sudo apt install -y make gcc pkg-config build-essential libx11-dev libxkbfile-dev libsecret-1-dev | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache node_modules with yarn | |
uses: actions/cache@v4 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Build | |
run: yarn --frozen-lockfile | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # https://github.com/microsoft/vscode-ripgrep/issues/9 | |
- name: Run Unit Tests | |
run: yarn test | |
env: | |
CI: true | |
- name: Run UI tests on Browser Example App | |
run: | |
yarn start:browser & | |
yarn test:browser-app | |
code-lint: | |
name: Lint and check format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
# ESLint and Prettier must be in `package.json` | |
- name: Install npm dependencies | |
run: yarn --frozen-lockfile --ignore-scripts | |
- name: Lint | |
run: yarn lint | |
- name: Check format | |
run: yarn format:check | |
publish-next: | |
name: Publish 'next' packages to npm | |
needs: build-and-test | |
if: github.ref == 'refs/heads/master' && github.event_name == 'push' && github.repository == 'eclipse-cdt-cloud/theia-trace-extension' | |
runs-on: ubuntu-latest | |
steps: | |
- name: install dependencies on ubuntu | |
run: | | |
sudo apt install -y make gcc pkg-config build-essential libx11-dev libxkbfile-dev libsecret-1-dev | |
- uses: actions/checkout@v4 | |
# Setup .npmrc file to publish to npm | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
registry-url: 'https://registry.npmjs.org' | |
- run: yarn --frozen-lockfile | |
- run: yarn publish:next | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
publish-latest: | |
name: Publish 'latest' packages to npm | |
needs: build-and-test | |
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'eclipse-cdt-cloud/theia-trace-extension' | |
runs-on: ubuntu-latest | |
steps: | |
- name: install dependencies on ubuntu | |
run: | | |
sudo apt install -y make gcc pkg-config build-essential libx11-dev libxkbfile-dev libsecret-1-dev | |
- uses: actions/checkout@v4 | |
# Setup .npmrc file to publish to npm | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
registry-url: 'https://registry.npmjs.org' | |
- run: yarn --frozen-lockfile | |
- run: yarn publish:latest | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} |