HaxeCheckstyle/haxe-checkstyle

View on GitHub
.github/workflows/checkstyle-linux.yml

Summary

Maintainability
Test Coverage
name: Haxe-Checkstyle Linux

on:
  push:
    branches:
    - dev
  pull_request:
    branches:
    - dev
  schedule:
    - cron: '15 23 * * *'

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        haxe-version: ['4.3.4', 'nightly']
    env:
      CC_TEST_REPORTER_ID: c4eda639526d39fbcab7ab9fc68c4046d4e597df56dbcb552b42d27b3580b758
      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
    steps:
    - uses: actions/checkout@v4
    - name: Use Node.js 18
      uses: actions/setup-node@v4
      with:
        node-version: 18
    - name: Installing codeclimate client
      if: matrix.haxe-version == 'nightly'
      run: |
        curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
        chmod +x ./cc-test-reporter
        ./cc-test-reporter before-build
    - name: Run npm install
      run: |
        npm ci
        npm i -g lix
    - name: Install Haxe version ${{ matrix.haxe-version }}
      run: |
        npx lix download haxe ${{ matrix.haxe-version }}
        npx lix use haxe ${{ matrix.haxe-version }}
    - name: Run lix download
      run: npx lix download
    - name: Print versions
      run: |
        npx haxe -version
        npx neko -version
        npx haxelib list
    - name: Build hxcpp binary
      run: |
        cd ~/haxe/haxe_libraries/hxcpp/4.2.0/github/96f5f9a69744e5fd07717e5af9d5b45bd3a8890a/
        npx haxelib dev hxcpp .
        cd tools/hxcpp
        npx haxe compile.hxml
    - name: Build neko versions
      run: |
        npx haxe build.hxml
        npx haxe buildDebug.hxml
    - name: Build NodeJs version
      run: |
        npx haxe buildJS.hxml
        bash uglifyCheckstyle.sh
    - name: Build C++ version
      run: echo "y" | npx haxe buildCpp.hxml
    - name: Build JSON schema
      run: npx haxe buildSchema.hxml
    - name: Run eval tests
      run: npx haxe -D codecov_json testAndResources.hxml
    - name: Run JVM tests
      run: npx haxe testJava.hxml
    - name: Format and upload codeclimate coverage
      if: success() && matrix.haxe-version == 'nightly'
      run: |
        ( \
          cd src; \
          ../cc-test-reporter format-coverage -t lcov ../lcov.info; \
          ../cc-test-reporter upload-coverage; \
        )
    # - name: Checkstyle report annotations
    #   if: success()
    #   uses: jwgmeligmeyling/checkstyle-github-action@master
    #   with:
    #     path: '**/check-style-report.xml'
    - name: Upload results to codecov
      if: success() && (matrix.haxe-version == 'nightly')
      run: bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"