Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewnicols committed Nov 19, 2024
1 parent 03e3425 commit d7ba15e
Showing 1 changed file with 1 addition and 104 deletions.
105 changes: 1 addition & 104 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
id: collect-tests
run: |
# Get all the test files without extension.
echo "matrix=$(cd local_ci/tests && find . -name '*.bats' -not -path '*/libs/*' -exec basename {} .bats ';' | \
echo "matrix=$(cd local_ci/tests && find . -name 'verify_phpunit_xml.bats' -not -path '*/libs/*' -exec basename {} .bats ';' | \
jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
test:
Expand Down Expand Up @@ -104,106 +104,3 @@ jobs:
run: |
mkdir -p ${LOCAL_CI_TESTS_CACHEDIR}
bats --timing tests/${{ matrix.test }}.bats
coverage:
if: github.repository == 'moodlehq/moodle-local_ci'
name: Code coverage
needs: collect
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
test: ${{ fromJson(needs.collect.outputs.matrix) }}
steps:
- name: Install required packages
run: |
sudo apt-get update
sudo apt-get install uuid kcov
- name: Checking out moodle-local_ci
uses: actions/checkout@v4
with:
path: local_ci

- name: Checking out moodle
uses: actions/checkout@v4
with:
repository: moodle/moodle
fetch-depth: 0 # We need a complete clone, because we use various commits / tags.
path: moodle

- name: Setting user in moodle clone
run: | # We need this set because local_ci does perform git write operations.
git config --global user.email "local_ci@moodle.com"
git config --global user.name "Local CI"
- name: Setting up DB mysql
uses: moodlehq/mysql-action@v1
with:
collation server: utf8mb4_bin
mysql version: 8.0
mysql root password: test
use tmpfs: true
tmpfs size: '1024M'
extra conf: --skip-log-bin

- name: Setting up PHP 8.3
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
ini-values: max_input_vars=5000
tools: composer
coverage: none

- name: Configuring node & npm
uses: actions/setup-node@v4
with:
node-version-file: 'moodle/.nvmrc'

- name: Installing composer and node stuff
run: |
cd local_ci
composer install
npm install
- name: Setup Bats
uses: bats-core/bats-action@2.0.0
with:
bats-version: 1.11.0
# We need only support and assert libraries, and installed locally for caching to work.
# See https://github.com/brokenpip3/setup-bats-libs/issues/18
support-path: "${{ github.workspace }}/.bats/bats-support"
assert-path: "${{ github.workspace }}/.bats/bats-assert"
detik-install: false
file-install: false

- name: Run Tests (capturing code coverage)
working-directory: local_ci # Tests have to start from here, because some use $PWD to detect the local_ci base.
env:
LOCAL_CI_TESTS_CACHEDIR: ${{ github.workspace }}/cachedir
LOCAL_CI_TESTS_GITDIR: ${{ github.workspace }}/moodle
LOCAL_CI_TESTS_PHPCS_DIR: ${{ github.workspace }}/local_ci/vendor/moodlehq/moodle-cs/moodle
LOCAL_CI_TESTS_DBLIBRARY: native
LOCAL_CI_TESTS_DBTYPE: mysqli
LOCAL_CI_TESTS_DBHOST: 127.0.0.1
LOCAL_CI_TESTS_DBUSER: root
LOCAL_CI_TESTS_DBPASS: test
# We need to specify where the libraries are, installed locally for caching to work.
# See https://github.com/brokenpip3/setup-bats-libs/issues/18
BATS_LIB_PATH: "${{ github.workspace }}/.bats"
run: |
mkdir -p ${LOCAL_CI_TESTS_CACHEDIR}
kcov \
--clean \
--include-path=. \
--exclude-path=".git,.github,remote_branch_checker/xslt,tests,vendor" \
--bash-parse-files-in-dir=. \
${{ github.workspace }}/coverage \
bats tests/${{ matrix.test }}.bats
- name: Upload code coverage (codecov)
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: ${{ github.workspace }}/coverage
flags: ${{ matrix.test }}

0 comments on commit d7ba15e

Please sign in to comment.