Skip to content

First Commit

First Commit #1

Workflow file for this run

name: ci:test
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [master]
pull_request:
branches: [master]
jobs:
test:
name: Continuous integration (tests)
runs-on: ubuntu-latest
steps:
- name: Setup Node
uses: actions/[email protected]
with:
node-version: 20.9.0
- name: Checkout πŸ›ŽοΈ
uses: actions/[email protected]
- name: Set $PATH πŸͺœ
run: echo "$HOME/.meteor" >> $GITHUB_PATH
- name: essai
run: sudo apt-get install inotify-tools
- name: Watch
run: bash "$HOME/work/VueGPX/VueGPX/watch.sh" &
- name: Set env.METEOR_RELEASE πŸ“»
run: echo "METEOR_RELEASE=$(cat .meteor/release | cut -d@ -f2)" >> $GITHUB_ENV
- name: Cache ~/.meteor (Meteor ${{ env.METEOR_RELEASE }}) πŸ’Ώ
uses: actions/[email protected]
id: cache-meteor
env:
cache-name: cache-meteor
with:
path: ~/.meteor
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/versions') }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}-
${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-
- name: Install Meteor ${{ env.METEOR_RELEASE }} β˜„οΈ
if: steps.cache-meteor.outputs.cache-hit != 'true'
run: curl https://install.meteor.com?release=${{ env.METEOR_RELEASE }} | sh
- name: Cache ~/.npm πŸ“€
uses: actions/[email protected]
env:
cache-name: cache-npm
with:
path: ~/.npm
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-
${{ runner.os }}-test-
${{ runner.os }}-
- name: Cache ./node_modules πŸ’½
uses: actions/[email protected]
id: cache-node-modules
env:
cache-name: cache-node-modules
with:
path: ./node_modules
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Cache Cypress binary
uses: actions/cache@v4
with:
path: ~/.cache/Cypress
key: cypress-${{ runner.os }}-cypress-${{ hashFiles('**/package-lock.json') }}
- name: Cypress
uses: cypress-io/github-action@v6
with:
record: true
start: meteor npm start
wait-on: 'http://127.0.0.1:3000'
wait-on-timeout: 600
command: meteor npm test
# build: npx cypress info
env:
# pass the Cypress Cloud record key as an environment variable
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# pass the project ID from the secrets through environment variable
CYPRESS_PROJECT_ID: ${{ secrets.PROJECT_ID }}
- name: Install dependencies πŸ“¦
run: meteor npm ci
- name: Cache ./.meteor/local πŸ’Ύ
uses: actions/cache@v4
env:
cache-name: cache-meteor-local
with:
path: |
./.meteor/local/resolver-result-cache.json
./.meteor/local/plugin-cache
./.meteor/local/isopacks
./.meteor/local/bundler-cache/scanner
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/versions') }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/versions') }}-${{ github.ref }}-
${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}-${{ hashFiles('.meteor/versions') }}-
${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-${{ hashFiles('.meteor/release') }}-
${{ runner.os }}-test-${{ env.cache-name }}-${{ env.METEOR_RELEASE }}-
- name: Test πŸ”¬
run: meteor npm run coverage:unit
- name: Remove minifier
run: meteor remove standard-minifier-js
# - name: Clean node_modules
# run: rm -fr node_modules
# Runs a single command using the runners shell
# - name: running ui tests
# run: meteor npm run test:dev:headless
- name: Publish coverage report πŸ“°
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: false # optional (default = false)
files: ./.cypress-coverage/lcov.info, ./.coverage/lcov.info # optional
verbose: true # optional (default = false)
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}