summaryrefslogtreecommitdiff
path: root/.github/workflows/dashboard-ci.yml
blob: 25843a6906032d85c92e74beb0d4a90f70092552 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: Dashboard CI
description: |
  This workflow runs tests and builds for the AzerothCore dashboard.
  It includes testing of bash scripts and integration testing of the AzerothCore server.
  Do not remove this if something is broken here and you don't know how to fix it, ping Yehonal instead.

on:
  push:
    branches:
      - 'master'
  pull_request:
    types:
      - opened
      - reopened
      - synchronize
  workflow_dispatch:

concurrency:
  group: ${{ github.head_ref }} || concat(${{ github.ref }}, ${{ github.workflow }})
  cancel-in-progress: true

env:
  CONTINUOUS_INTEGRATION: true
  MYSQL_ROOT_PASSWORD: root

jobs:
  test-bash-scripts:
    name: Test Bash Scripts
    strategy:
      fail-fast: true
      matrix:
        include:
          - os: ubuntu-22.04
          - os: ubuntu-24.04
    runs-on: ${{ matrix.os }}
    if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Install requirements
        run: |
          sudo apt install -y bats
          ./acore.sh install-deps

      - name: Run bash script tests for ${{ matrix.test-module }}
        env:
          TERM: xterm-256color
        run: |
          cd apps/test-framework
          ./run-tests.sh --tap

  build-and-test:
    name: Build and Integration Test
    strategy:
      fail-fast: true
      matrix:
        include:
          - os: ubuntu-22.04
          - os: ubuntu-24.04
    runs-on: ${{ matrix.os }}
    if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 1

      - name: Configure AzerothCore settings
        run: |
          # Create basic configuration
          cp conf/dist/config.sh conf/config.sh
          # Configure dashboard
          sed -i 's/MTHREADS=.*/MTHREADS="4"/' conf/config.sh

      - name: Run complete installation (deps, compile, database, client-data)
        run: |
          # This runs: install-deps, compile, database setup, client-data download
          ./acore.sh init
        timeout-minutes: 120

      - name: Test authserver dry-run
        run: |
          cd env/dist/bin
          timeout 5m ./authserver -dry-run
        continue-on-error: false

      - name: Test worldserver dry-run
        run: |
          cd env/dist/bin
          timeout 5m ./worldserver -dry-run
        continue-on-error: false