First Commit #1
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: 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 }} |