-
Notifications
You must be signed in to change notification settings - Fork 95
104 lines (98 loc) · 2.99 KB
/
pr.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# License: LGPL-3.0-or-later
name: Pull Request Build
on:
pull_request:
types: [opened, reopened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
# this version used for running various tools
tool_node_version: "14.x"
tool_ruby_version: "2.7.6"
jobs:
changes:
name: "Check for file changes"
runs-on: ubuntu-latest
# Set job outputs to values from filter step
outputs:
filters: ${{ steps.filter.outputs.changes }}
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: filter
with:
# Path to file where filters are defined
filters: .github/path-filters.yml
npm-package-download: # this downloads and caches all of the packages. That way if a future job fails, the caching will still occur
name: Download and cache any npm packages
needs: changes
if: ${{ contains(needs.changes.outputs.filters, 'build-js') }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
node: ["14.x"]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- run: yarn install --frozen-lockfile
gem-package-download: # this downloads and caches all of the packages. That way if a future job fails, the caching will still occur
name: Download and cache any gem packages
needs: changes
if: ${{ contains(needs.changes.outputs.filters, 'build-ruby') }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
ruby: [2.7.6]
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
markdownlint:
name: Lint markdown code
needs: changes
if: ${{ contains(needs.changes.outputs.filters, 'markdown')}}
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Run markdownlint
run: yarn markdownlint
notice_js:
name: Verify NOTICE-js is up to date
runs-on: ubuntu-20.04
needs:
- npm-package-download
- changes
if: ${{ contains(needs.changes.outputs.filters, 'js-notice-files')}}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.tool_node_version }}
cache: 'yarn'
- run: yarn install --frozen-lockfile
- name: Verify NOTICE-js
run: yarn notice:js
notice_ruby:
name: Verify NOTICE-ruby is up to date
runs-on: ubuntu-20.04
needs:
- gem-package-download
- changes
if: ${{ contains(needs.changes.outputs.filters, 'ruby-notice-files')}}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.tool_ruby_version }}
bundler-cache: true
- name: run notice:ruby:verify
run: |
bin/rails notice:ruby:verify