186 lines
5.4 KiB
YAML
186 lines
5.4 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Setup
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 15.x
|
|
- name: Install
|
|
run: npm ci
|
|
- name: Build
|
|
run: npm run build
|
|
- name: Test
|
|
run: npm test
|
|
|
|
analyze:
|
|
runs-on: ubuntu-latest
|
|
needs: <%- JSON.stringify(releases.map(release => `test-${release}`)) %>
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Setup
|
|
uses: github/codeql-action/init@v1
|
|
with:
|
|
languages: javascript
|
|
config-file: ./.github/config/codeql.yml
|
|
- name: Analyze
|
|
uses: github/codeql-action/analyze@v1
|
|
|
|
# Tests cases below are auto generated through `npm run build`
|
|
# Edit utils/workflow.yml instead if you need to update workflow
|
|
<% for (const release of releases) { %>
|
|
test-<%- release %>:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
template: <%- JSON.stringify(templates) %>
|
|
steps:
|
|
|
|
- name: ${{ matrix.template }} > Base
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
base: "header, activity, community, repositories, metadata",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > PageSpeed
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_pagespeed: true,
|
|
plugin_pagespeed_token: "${{ secrets.PAGESPEED_TOKEN }}",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > PageSpeed (detailed)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_pagespeed: true,
|
|
plugin_pagespeed_detailed: true,
|
|
plugin_pagespeed_token: "${{ secrets.PAGESPEED_TOKEN }}",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Music (playlist - apple)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_music: true,
|
|
plugin_music_playlist: "${{ secrets.MUSIC_PLAYLIST_APPLE }}",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Music (playlist - spotify)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_music: true,
|
|
plugin_music_playlist: "${{ secrets.MUSIC_PLAYLIST_SPOTIFY }}",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Music (recent - spotify)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_music: true,
|
|
plugin_music_provider: "spotify",
|
|
plugin_music_token: "${{ secrets.SPOTIFY_TOKENS }}",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Posts (dev.to)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_posts: true,
|
|
plugin_posts_source: "dev.to",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Isocalendar
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_isocalendar: true,
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Isocalendar (full year)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_isocalendar: true,
|
|
plugin_isocalendar_duration: "full-year",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Habits
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_habits: true,
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Languages
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_languages: true,
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Follow-up
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_followup: true,
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Lines
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_lines: true,
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Traffic
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_traffic: true,
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Gists
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_gists: true,
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Topics (stars)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_topics: true,
|
|
plugin_topics_sort: "stars",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Topics (activity)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_topics: true,
|
|
plugin_topics_sort: "activity",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Topics (starred)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_topics: true,
|
|
plugin_topics_sort: "starred",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Topics (random)
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_topics: true,
|
|
plugin_topics_sort: "random",
|
|
}) %>
|
|
|
|
- name: ${{ matrix.template }} > Plugin > Projects
|
|
uses: lowlighter/metrics@<%- release %>
|
|
<%- testcase({
|
|
plugin_projects: true,
|
|
plugin_projects_limit: 2,
|
|
}) %>
|
|
|
|
<% } -%>
|