mirror of
https://github.com/maputnik/editor.git
synced 2026-01-13 17:00:01 +00:00
Adds lint to CI and fixes errors. I'm not sure I'm fully proud of all the solutions there. But there's no lint issues and the lint is being checked as part of the CI. --------- Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
138 lines
3.4 KiB
YAML
138 lines
3.4 KiB
YAML
name: ci
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [ main ]
|
|
push:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
build-docker:
|
|
name: build docker
|
|
runs-on: ubuntu-latest
|
|
|
|
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: docker build -t docker.pkg.github.com/maputnik/editor/editor:main .
|
|
|
|
# build the editor
|
|
build-node:
|
|
name: "build on ${{ matrix.os }}"
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version-file: '.nvmrc'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-node-
|
|
- run: npm ci
|
|
- run: npm run build
|
|
- run: npm run lint
|
|
- run: npm run lint-css
|
|
|
|
|
|
|
|
build-artifacts:
|
|
name: "build artifacts"
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version-file: '.nvmrc'
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-node-
|
|
- run: npm ci
|
|
- run: npm run build
|
|
- run: npm run build-storybook
|
|
- name: artifacts/editor
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: editor
|
|
path: dist
|
|
- name: artifacts/storybook
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: storybook
|
|
path: build/storybook
|
|
|
|
# Build and upload desktop CLI artifacts
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ^1.19.x
|
|
id: go
|
|
|
|
- name: Check out code into the Go module directory
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: maputnik/desktop
|
|
ref: master
|
|
path: ./src/github.com/maputnik/desktop/
|
|
|
|
- name: Make
|
|
run: cd src/github.com/maputnik/desktop/ && make
|
|
|
|
- name: Artifacts/linux
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: maputnik-linux
|
|
path: ./src/github.com/maputnik/desktop/bin/linux/
|
|
|
|
- name: Artifacts/darwin
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: maputnik-darwin
|
|
path: ./src/github.com/maputnik/desktop/bin/darwin/
|
|
|
|
- name: Artifacts/windows
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: maputnik-windows
|
|
path: ./src/github.com/maputnik/desktop/bin/windows/
|
|
|
|
e2e-tests:
|
|
name: "E2E tests using ${{ matrix.browser }}"
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
browser: [chrome, firefox]
|
|
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- run: npm ci
|
|
- name: Cypress run
|
|
uses: cypress-io/github-action@v6
|
|
with:
|
|
build: npm run build
|
|
start: npm run start
|
|
browser: ${{ matrix.browser }}
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
files: ${{ github.workspace }}/.nyc_output/out.json
|
|
verbose: true
|