Skip to content
This repository was archived by the owner on Oct 11, 2024. It is now read-only.

Commit 8dfb300

Browse files
committed
Add CI for linting docs
1 parent fe2516b commit 8dfb300

File tree

5 files changed

+113
-18
lines changed

5 files changed

+113
-18
lines changed

Diff for: .github/workflows/_filechange_checker.yml

+20-6
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@ name: Filechange Checker
33
on:
44
workflow_call:
55
outputs:
6-
fileschanged:
6+
srcfileschanged:
77
description: "'true' if src/** or .github/workflows/** files have changed in the branch"
8-
value: ${{ jobs.file-change-check.outputs.fileschanged }}
8+
value: ${{ jobs.file-change-check.outputs.srcfileschanged }}
9+
docfileschanged:
10+
description: "'true' if docs/** or src/** or .github/workflows/** files have changed in the branch"
11+
value: ${{ jobs.file-change-check.outputs.docfileschanged }}
912

1013
jobs:
1114
file-change-check:
@@ -14,7 +17,8 @@ jobs:
1417
contents: read
1518
pull-requests: read
1619
outputs:
17-
fileschanged: ${{ steps.checker.outputs.fileschanged }}
20+
srcfileschanged: ${{ steps.srcchecker.outputs.srcfileschanged }}
21+
docfileschanged: ${{ steps.docchecker.outputs.docfileschanged }}
1822
steps:
1923
- uses: actions/checkout@v3
2024

@@ -27,11 +31,21 @@ jobs:
2731
filters: |
2832
src:
2933
- 'src/**'
34+
docs:
35+
- 'docs/**'
3036
actions:
3137
- '.github/workflows/**'
32-
- name: Check dorny for changes in specified filepaths
33-
id: checker
38+
39+
- name: Check dorny for changes in src filepaths
40+
id: srcchecker
3441
if: steps.dornycheck.outputs.src == 'true' || steps.dornycheck.outputs.actions == 'true'
3542
run: |
3643
echo "src or workflow file changes occurred"
37-
echo ::set-output name=fileschanged::true
44+
echo ::set-output name=srcfileschanged::true
45+
46+
- name: Check dorny for changes in docs related filepaths
47+
id: docchecker
48+
if: steps.dornycheck.outputs.src == 'true' || steps.dornycheck.outputs.docs == 'true' || steps.dornycheck.outputs.actions == 'true'
49+
run: |
50+
echo "docs, src or workflow file changes occurred"
51+
echo ::set-output name=docfileschanged::true

Diff for: .github/workflows/ci.yml

+10-10
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
# single setup and sum cache handling here.
3838
# the results will cascade onto both testing and linting.
3939
- name: Setup Golang with cache
40-
if: needs.precheck.outputs.fileschanged == 'true'
40+
if: needs.precheck.outputs.srcfileschanged == 'true'
4141
uses: magnetikonline/action-golang-cache@v3
4242
with:
4343
go-version-file: src/go.mod
@@ -57,7 +57,7 @@ jobs:
5757
- uses: actions/checkout@v3
5858

5959
- name: Setup Golang with cache
60-
if: needs.precheck.outputs.fileschanged == 'true'
60+
if: needs.precheck.outputs.srcfileschanged == 'true'
6161
uses: magnetikonline/action-golang-cache@v3
6262
with:
6363
go-version-file: src/go.mod
@@ -66,12 +66,12 @@ jobs:
6666

6767
# Install gotestfmt
6868
- name: Set up gotestfmt
69-
if: needs.precheck.outputs.fileschanged == 'true'
69+
if: needs.precheck.outputs.srcfileschanged == 'true'
7070
run: go install github.com/haveyoudebuggedit/gotestfmt/v2/cmd/gotestfmt@latest
7171

7272
# AWS creds
7373
- name: Configure AWS credentials from Test account
74-
if: needs.precheck.outputs.fileschanged == 'true'
74+
if: needs.precheck.outputs.srcfileschanged == 'true'
7575
uses: aws-actions/configure-aws-credentials@v1
7676
with:
7777
role-to-assume: arn:aws:iam::951767375776:role/corso-testing-role
@@ -80,7 +80,7 @@ jobs:
8080

8181
# run the tests
8282
- name: Integration Tests
83-
if: needs.precheck.outputs.fileschanged == 'true'
83+
if: needs.precheck.outputs.srcfileschanged == 'true'
8484
env:
8585
CLIENT_ID: ${{ secrets.CLIENT_ID }}
8686
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
@@ -97,7 +97,7 @@ jobs:
9797
9898
# Upload the original go test log as an artifact for later review.
9999
- name: Upload test log
100-
if: failure() && needs.precheck.outputs.fileschanged == 'true'
100+
if: failure() && needs.precheck.outputs.srcfileschanged == 'true'
101101
uses: actions/upload-artifact@v3
102102
with:
103103
name: test-log
@@ -120,13 +120,13 @@ jobs:
120120
- uses: actions/checkout@v3
121121

122122
- name: Setup Golang with cache
123-
if: needs.precheck.outputs.fileschanged == 'true'
123+
if: needs.precheck.outputs.srcfileschanged == 'true'
124124
uses: magnetikonline/action-golang-cache@v3
125125
with:
126126
go-version-file: src/go.mod
127127

128128
- name: Go Lint
129-
if: needs.precheck.outputs.fileschanged == 'true'
129+
if: needs.precheck.outputs.srcfileschanged == 'true'
130130
uses: golangci/golangci-lint-action@v3
131131
with:
132132
version: v1.45.2
@@ -135,9 +135,9 @@ jobs:
135135

136136
# check licenses
137137
- name: Get go-licenses
138-
if: needs.precheck.outputs.fileschanged == 'true'
138+
if: needs.precheck.outputs.srcfileschanged == 'true'
139139
run: go install github.com/google/go-licenses@latest
140140

141141
- name: Run go-licenses
142-
if: needs.precheck.outputs.fileschanged == 'true'
142+
if: needs.precheck.outputs.srcfileschanged == 'true'
143143
run: go-licenses check github.com/alcionai/corso/src --ignore github.com/alcionai/corso/src

Diff for: .github/workflows/docgen.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
Generate-Markdown:
1616
needs: precheck
17-
if: needs.precheck.outputs.fileschanged == 'true'
17+
if: needs.precheck.outputs.srcfileschanged == 'true'
1818
runs-on: ubuntu-latest
1919
steps:
2020
- uses: actions/checkout@v3

Diff for: .github/workflows/docs-ci.yml

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: CI Tests for docs
2+
on:
3+
push:
4+
branches: [main]
5+
pull_request:
6+
branches: [main]
7+
8+
permissions:
9+
# required to retrieve AWS credentials
10+
id-token: write
11+
contents: write
12+
pull-requests: read
13+
14+
# cancel currently running jobs if a new version of the branch is pushed
15+
concurrency:
16+
group: ci-linting-${{ github.workflow }}-${{ github.ref }}
17+
cancel-in-progress: true
18+
19+
jobs:
20+
21+
# ----------------------------------------------------------------------------------------------------
22+
# --- Precheck ---------------------------------------------------------------------------------------
23+
# ----------------------------------------------------------------------------------------------------
24+
precheck:
25+
uses: alcionai/corso/.github/workflows/_filechange_checker.yml@docs-ci # TODO: change this to main
26+
27+
# ----------------------------------------------------------------------------------------------------
28+
# --- Generate cli docs ------------------------------------------------------------------------------
29+
# ----------------------------------------------------------------------------------------------------
30+
31+
Generate-Markdown:
32+
needs: precheck
33+
if: needs.precheck.outputs.srcfileschanged == 'true'
34+
runs-on: ubuntu-latest
35+
steps:
36+
- uses: actions/checkout@v3
37+
with:
38+
ref: ${{ github.event.pull_request.head.ref }}
39+
40+
- name: Setup Golang with cache
41+
uses: magnetikonline/action-golang-cache@v3
42+
with:
43+
go-version-file: src/go.mod
44+
45+
# run the markdown generator
46+
- name: Generate Markdown
47+
working-directory: ./src
48+
run: |
49+
go run ./cmd/mdgen/mdgen.go generate
50+
51+
# migrate generated md files into /docs/docs/cli
52+
- name: Move CLI .md to Docs
53+
run: |
54+
mkdir -p ./docs/docs/cli
55+
mv ./src/cmd/mdgen/cli_markdown/* ./docs/docs/cli/
56+
rm -R ./src/cmd/mdgen/cli_markdown/
57+
58+
# ----------------------------------------------------------------------------------------------------
59+
# --- Docs Linting -----------------------------------------------------------------------------------
60+
# ----------------------------------------------------------------------------------------------------
61+
62+
Docs-Linting:
63+
needs: [precheck , Generate-Markdown]
64+
environment: Testing
65+
runs-on: ubuntu-latest
66+
defaults:
67+
run:
68+
working-directory: docs
69+
steps:
70+
- uses: actions/checkout@v3
71+
72+
- name: Install dependencies for docs lint
73+
if: needs.precheck.outputs.docfileschanged == 'true'
74+
run: |
75+
sudo snap install --edge vale
76+
npm install -g markdownlint-cli
77+
78+
- name: Run docs lint
79+
if: needs.precheck.outputs.docfileschanged == 'true'
80+
run: |
81+
make -o genclidocs check

Diff for: .github/workflows/image.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
Per-SHA-Image:
1616
needs: precheck
17-
if: needs.precheck.outputs.fileschanged == 'true'
17+
if: needs.precheck.outputs.srcfileschanged == 'true'
1818
runs-on: ubuntu-latest
1919
defaults:
2020
run:

0 commit comments

Comments
 (0)