Skip to content

Adapt validator to ES6 #281

Adapt validator to ES6

Adapt validator to ES6 #281

Workflow file for this run

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
---
name: "Checkin"
on:
push:
branches:
- main
pull_request:
jobs:
build-and-test:
name: "Build & Test"
runs-on: ubuntu-latest
strategy:
matrix:
node:
- lts/*
- node
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Setup node"
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm
- name: "npm ci"
run: npm ci
- name: "Build"
run: npm run build
- name: "Linters"
run: npm run lint
- name: "Node Unit Tests"
run: npm run test-unit
- name: "Node Acceptance Tests"
run: npm run test-acceptance
# Disabled for the moment, I can't get sauce labs to work
# - name: "Browser Unit Tests"
# env:
# SAUCE_USERNAME: ${{secrets.SAUCE_USERNAME}}
# SAUCE_ACCESS_KEY: ${{secrets.SAUCE_ACCESS_KEY}}
# run: npm run test-browser
- name: "Coverage Push"
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: unit-${{ matrix.node }}
parallel: true
- name: "Artifacts"
uses: actions/upload-artifact@v4
if: matrix.node == 'node'
with:
name: distribution
path: dist/*.js
if-no-files-found: error
ghpages:
name: "GH Pages"
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Setup node"
uses: actions/setup-node@v4
with:
node-version: latest
cache: npm
- name: "npm ci"
run: npm ci
- name: "GH Pages Prepare"
run: npm run ghpages
- name: "GH Pages Push"
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{secrets.GITHUB_TOKEN}}
publish_dir: docs
timezones:
name: "Timezones"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Setup node"
uses: actions/setup-node@v4
with:
node-version: latest
cache: npm
- name: "npm ci"
run: npm ci
- name: "Download tzdb"
id: tzdb
run: |
export TZDB_VERSION=$(node tools/scriptutils.js tzdb-version)
mkdir -p tools/tzdb
cd tools/tzdb
wget "https://data.iana.org/time-zones/releases/tzdata${TZDB_VERSION}.tar.gz" -O - | tar xz
- name: "Build vzic"
run: |
git clone https://github.com/libical/vzic tools/vzic
cd tools/vzic
make TZID_PREFIX="" OLSON_DIR="$(readlink -f ../tzdb)"
- name: "Run vzic"
run: tools/vzic/vzic --olson-dir tools/tzdb --output-dir tools/tzdb/zoneinfo
- name: "Create zones"
run: |
mkdir -p dist
node tools/scriptutils.js generate-zones tools/tzdb > dist/ical.timezones.js
- name: "Artifacts"
uses: actions/upload-artifact@v4
with:
name: timezones
path: dist/ical.timezones.js
finish:
needs: [build-and-test, timezones]
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true