3 |
|
|
4 |
name: Build |
name: Build |
5 |
|
|
6 |
on: [ push, pull_request ] |
on: [push, pull_request] |
7 |
|
|
8 |
jobs: |
jobs: |
9 |
build: |
build: |
|
|
|
|
runs-on: ubuntu-latest |
|
|
|
|
10 |
strategy: |
strategy: |
11 |
matrix: |
matrix: |
12 |
node-version: [16.x, 18.x] |
node-version: [21.x, 22.x] |
13 |
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ |
os: [ubuntu-latest, macos-latest, windows-latest] |
14 |
|
|
15 |
|
runs-on: ${{ matrix.os }} |
16 |
|
|
17 |
steps: |
steps: |
18 |
- uses: actions/checkout@v3 |
- uses: actions/checkout@v3 |
19 |
|
|
20 |
- name: Use Node.js ${{ matrix.node-version }} |
- name: Use Node.js ${{ matrix.node-version }} |
21 |
uses: actions/setup-node@v3 |
uses: actions/setup-node@v3 |
22 |
with: |
with: |
23 |
node-version: ${{ matrix.node-version }} |
node-version: ${{ matrix.node-version }} |
24 |
|
|
25 |
- name: "Install Dependencies" |
- name: Install Libraries (Linux) |
26 |
run: npm install |
run: sudo apt update && sudo apt install build-essential librsvg2-dev libgif-dev giflib-tools libcurl4 libcurl4-gnutls-dev libgtk-3-dev libpango1.0-dev libpng-dev libpng++-dev libpng-tools libjpeg-tools libjpeg-progs libjpeg-dev -y |
27 |
|
if: matrix.os == 'ubuntu-latest' |
28 |
- name: "Install Dev Dependencies" |
|
29 |
run: npm install --dev |
- name: Install Libraries and Tools (macOS) |
30 |
|
run: brew install curl pkg-config cairo pango libpng jpeg giflib librsvg |
31 |
|
if: matrix.os == 'macos-latest' |
32 |
|
|
33 |
|
- name: "Install Native Libraries" |
34 |
|
run: | |
35 |
|
git clone https://github.com/Cogmasters/concord; |
36 |
|
cd concord; |
37 |
|
make; |
38 |
|
sudo make install; |
39 |
|
cd ..; |
40 |
|
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' |
41 |
|
|
42 |
|
- name: "Install Dependencies" |
43 |
|
run: npm install -D |
44 |
|
|
45 |
|
- name: "ESLint" |
46 |
|
run: npm run lint -- --max-warnings=0 |
47 |
|
|
48 |
|
- name: "Build (TypeScript)" |
49 |
|
run: npm run build --if-present |
50 |
|
|
51 |
|
- name: "Build (Native)" |
52 |
|
run: make |
53 |
|
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' |
54 |
|
|
55 |
|
- name: "Test" |
56 |
|
run: npx vitest run --coverage |
57 |
|
|
58 |
|
- name: Upload coverage reports to Codecov |
59 |
|
uses: codecov/[email protected] |
60 |
|
with: |
61 |
|
token: ${{ secrets.CODECOV_TOKEN }} |
62 |
|
slug: onesoft-sudo/sudobot |
63 |
|
|
64 |
- name: "ESLint" |
blazebuild: |
65 |
run: npm run lint || echo "ESLint Failed" |
strategy: |
66 |
|
matrix: |
67 |
|
os: [ubuntu-latest, macos-latest, windows-latest] |
68 |
|
|
69 |
- name: "Build" |
runs-on: ${{ matrix.os }} |
70 |
run: npm run build --if-present |
|
71 |
|
steps: |
72 |
|
- name: Set git to use LF |
73 |
|
run: | |
74 |
|
git config --global core.autocrlf false |
75 |
|
git config --global core.eol lf |
76 |
|
|
77 |
|
- uses: actions/checkout@v3 |
78 |
|
|
79 |
|
- name: Install tools on macOS |
80 |
|
run: brew install curl pkg-config cairo pango libpng jpeg giflib librsvg |
81 |
|
if: matrix.os == 'macos-latest' |
82 |
|
|
83 |
- name: "Run Test Suites" |
- name: Build with BlazeBuild |
84 |
run: npm run test --if-present |
run: ./blazew build |