MOBILE-3947 fileuploader: Fix audio recorder #1314
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Acceptance tests (Behat) | |
on: | |
workflow_dispatch: | |
inputs: | |
behat_tags: | |
description: 'Behat tags to execute' | |
moodle_branch: | |
description: 'Moodle branch' | |
required: true | |
default: 'main' | |
moodle_repository: | |
description: 'Moodle repository' | |
required: true | |
default: 'https://github.com/moodle/moodle.git' | |
pull_request: | |
branches: [ main, v*.x ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
outputs: | |
tags: ${{ steps.set-tags.outputs.tags }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
path: app | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: 'app/.nvmrc' | |
- name: Install npm dependencies | |
working-directory: app | |
run: npm ci --no-audit | |
- name: Build app | |
working-directory: app | |
run: npm run build:test | |
- name: Build Behat plugin | |
working-directory: app | |
run: ./scripts/build-behat-plugin.js ../plugin | |
- name: Prepare Behat tags | |
id: set-tags | |
run: | | |
if [ -z $BEHAT_TAGS ]; then | |
tags=( | |
"@addon_block_timeline" | |
"@addon_calendar" | |
"@addon_competency" | |
"@addon_messages" | |
"@addon_mod_assign" | |
"@addon_mod_bigbluebuttonbn" | |
"@addon_mod_book" | |
"@addon_mod_chat" | |
"@addon_mod_choice" | |
"@addon_mod_data" | |
"@addon_mod_feedback" | |
"@addon_mod_forum" | |
"@addon_mod_glossary" | |
"@addon_mod_lesson" | |
"@addon_mod_quiz" | |
"@addon_mod_scorm" | |
"@addon_mod_survey" | |
"@addon_mod_workshop" | |
"@addon_notifications" | |
"@core" | |
"@core_comments" | |
"@core_course" | |
"@core_courses" | |
"@core_grades" | |
"@core_login" | |
"@core_mainmenu" | |
"@core_reminders" | |
"@core_reportbuilder" | |
"@core_search" | |
"@core_settings" | |
"@core_siteplugins" | |
"@core_user" | |
"@core_usertour" | |
) | |
tags_json="[" | |
for tag in "${tags[@]}"; do | |
tags_json+="\"$tag\"," | |
done | |
tags_json="${tags_json%?}" | |
tags_json+="]" | |
echo "tags=$tags_json" >> $GITHUB_OUTPUT; | |
else | |
echo "tags=[\"$BEHAT_TAGS\"]" >> $GITHUB_OUTPUT; | |
fi | |
env: | |
BEHAT_TAGS: ${{ github.event.inputs.behat_tags }} | |
# We need to upload an artifact so that the download-artifact action | |
# in the "complete" job does not fail if no other artifacts were uploaded. | |
- name: Create build logs | |
run: touch logs.txt | |
- name: Upload build logs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build | |
path: logs.txt | |
- uses: actions/cache/save@v4 | |
with: | |
key: build-${{ github.sha }} | |
path: | | |
app/node_modules/**/* | |
app/www/**/* | |
plugin/**/* | |
behat: | |
runs-on: ubuntu-latest | |
needs: build | |
continue-on-error: true | |
strategy: | |
matrix: | |
tags: ${{ fromJSON(needs.build.outputs.tags) }} | |
services: | |
postgres: | |
image: postgres:13 | |
env: | |
POSTGRES_USER: 'postgres' | |
POSTGRES_HOST_AUTH_METHOD: 'trust' | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
path: app | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: 'app/.nvmrc' | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.1 | |
ini-values: max_input_vars=5000 | |
coverage: none | |
- uses: actions/cache/restore@v4 | |
with: | |
key: build-${{ github.sha }} | |
path: | | |
app/node_modules/**/* | |
app/www/**/* | |
plugin/**/* | |
- name: Launch Docker images | |
working-directory: app | |
run: | | |
docker run -d --rm -p 8001:80 --name moodleapp -v ./www:/usr/share/nginx/html -v ./nginx.conf:/etc/nginx/conf.d/default.conf nginx:alpine | |
docker run -d --rm -p 8002:80 --name bigbluebutton moodlehq/bigbluebutton_mock:latest | |
- name: Initialise moodle-plugin-ci | |
run: | | |
composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^4.3 | |
echo $(cd ci/bin; pwd) >> $GITHUB_PATH | |
echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH | |
sudo locale-gen en_AU.UTF-8 | |
echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV | |
- name: Install Behat Snapshots plugin | |
run: moodle-plugin-ci add-plugin NoelDeMartin/moodle-local_behatsnapshots | |
- name: Install moodle-plugin-ci | |
run: moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 | |
env: | |
DB: pgsql | |
MOODLE_BRANCH: ${{ github.event.inputs.moodle_branch || 'main' }} | |
MOODLE_REPO: ${{ github.event.inputs.moodle_repository || 'https://github.com/moodle/moodle.git' }} | |
MOODLE_BEHAT_IONIC_WWWROOT: http://localhost:8001 | |
MOODLE_BEHAT_DEFAULT_BROWSER: chrome | |
- name: Update config | |
run: moodle-plugin-ci add-config 'define("TEST_MOD_BIGBLUEBUTTONBN_MOCK_SERVER", "http://localhost:8002/hash" . sha1($CFG->wwwroot));' | |
- name: Run Behat tests | |
run: moodle-plugin-ci behat --auto-rerun 3 --profile chrome --tags="@app&&~@local&&$BEHAT_TAGS" | |
env: | |
BEHAT_TAGS: ${{ matrix.tags }} | |
- name: Upload Snapshot failures | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: snapshot_failures-${{ matrix.tags }} | |
path: moodle/local/moodleappbehat/tests/behat/snapshots/failures/* | |
- name: Upload Behat failures | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: behat_failures-${{ matrix.tags }} | |
path: moodledata/behat_dump/* | |
complete: | |
runs-on: ubuntu-latest | |
needs: [behat] | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
path: artifacts | |
- name: Check failure artifacts | |
run: | | |
rm ./artifacts/build -rf | |
if [ -n "$(ls -A ./artifacts)" ]; then | |
echo "There were some failures in the previous jobs" | |
exit 1 | |
fi |