1 |
rakinar2 |
575 |
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node |
2 |
|
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions |
3 |
|
|
|
4 |
|
|
name: Build |
5 |
|
|
|
6 |
|
|
on: [push, pull_request] |
7 |
|
|
|
8 |
|
|
jobs: |
9 |
|
|
build: |
10 |
|
|
strategy: |
11 |
|
|
matrix: |
12 |
|
|
node-version: [21.x, 22.x] |
13 |
|
|
os: [ubuntu-latest, macos-latest, windows-latest] |
14 |
|
|
|
15 |
|
|
runs-on: ${{ matrix.os }} |
16 |
|
|
|
17 |
|
|
steps: |
18 |
|
|
- uses: actions/checkout@v3 |
19 |
|
|
|
20 |
|
|
- name: Use Node.js ${{ matrix.node-version }} |
21 |
|
|
uses: actions/setup-node@v3 |
22 |
|
|
with: |
23 |
|
|
node-version: ${{ matrix.node-version }} |
24 |
|
|
|
25 |
|
|
- name: Install Libraries (Linux) |
26 |
|
|
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 |
|
|
|
29 |
|
|
- 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 |
|
|
blazebuild: |
65 |
|
|
strategy: |
66 |
|
|
matrix: |
67 |
|
|
os: [ubuntu-latest, macos-latest, windows-latest] |
68 |
|
|
|
69 |
|
|
runs-on: ${{ matrix.os }} |
70 |
|
|
|
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: Build with BlazeBuild |
84 |
|
|
run: ./blazew build |