summaryrefslogtreecommitdiff
path: root/.github/workflows/libjs-test262.yml
blob: 303bb681f329c07344e27cf214594849429e8c47 (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
name: Run test262 with LibJS and push results to the website repo

on: [push]

env:
  SERENITY_SOURCE_DIR: ${{ github.workspace }}

jobs:
  run_and_update_results:
    runs-on: ubuntu-20.04
    if: always() && github.repository == 'SerenityOS/serenity' && github.ref == 'refs/heads/master'

    concurrency: libjs-test262

    steps:
      - name: Checkout SerenityOS/serenity
        uses: actions/checkout@v2

      - name: Checkout linusg/libjs-test262
        uses: actions/checkout@v2
        with:
          repository: linusg/libjs-test262
          path: libjs-test262

      - name: Checkout linusg/libjs-website
        uses: actions/checkout@v2
        with:
          repository: linusg/libjs-website
          path: libjs-website

      - name: Checkout tc39/test262
        uses: actions/checkout@v2
        with:
          repository: tc39/test262
          path: test262

      - name: Checkout tc39/test262-parser-tests
        uses: actions/checkout@v2
        with:
          repository: tc39/test262-parser-tests
          path: test262-parser-tests

      - name: Install dependencies
        run: |
          sudo apt-get update
          sudo apt-get install ninja-build

      - name: Setup Python
        uses: actions/setup-python@v2

      - name: Install Python dependencies
        # The setup-python action set default python to python3.x. Note that we are not using system python here.
        run: |
          python -m pip install --upgrade pip
          pip install -r libjs-test262/requirements.txt

      - name: Check versions
        run: set +e; g++ --version; g++-10 --version; python --version; python3 --version; ninja --version

      - name: Build libLagom.a and test-js
        run: |
          mkdir -p Build/lagom
          cd Build/lagom
          cmake -GNinja -DCMAKE_C_COMPILER=gcc-10 -DCMAKE_CXX_COMPILER=g++-10 -DBUILD_LAGOM=ON ../../Meta/Lagom
          ninja libLagom.a test-js

      - name: Build libjs-test262-runner
        working-directory: libjs-test262
        run: |
          mkdir -p Build
          cd Build
          cmake -GNinja -DCMAKE_C_COMPILER=gcc-10 -DCMAKE_CXX_COMPILER=g++-10 ..
          ninja libjs-test262-runner

      - name: Run test262 and test262-parser-tests
        working-directory: libjs-test262
        run: |
          python3 run_all_and_update_results.py \
            --serenity .. \
            --test262 ../test262 \
            --test262-parser-tests ../test262-parser-tests \
            --results-json ../libjs-website/test262/data/results.json

      - name: Deploy to GitHub pages
        uses: JamesIves/github-pages-deploy-action@4.1.1
        with:
          git-config-name: BuggieBot
          git-config-email: buggiebot@serenityos.org
          branch: main
          repository-name: linusg/libjs-website
          token: ${{ secrets.BUGGIEBOT }}
          folder: libjs-website