-
Notifications
You must be signed in to change notification settings - Fork 43
135 lines (114 loc) · 4.23 KB
/
ci.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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: CI
on:
push:
branches:
- main
- next
- v9
pull_request:
jobs:
build:
name: Test Suite
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version:
# see the following:
# https://github.com/actions/setup-node?tab=readme-ov-file#supported-version-syntax
# https://github.com/nvm-sh/nvm/issues/1998#issuecomment-594958684
- lts/-1
- lts/*
- latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Build and run tests
run: npm cit
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install deps
run: npm ci
- name: Build dist
run: npm run build
- name: Run tests
run: npm run lint
action:
name: GitHub Action Dry Run
runs-on: ubuntu-latest
steps:
- name: Checkout GitHub Action
uses: actions/checkout@v4
with:
path: rdme-repo
- name: Checkout external repo containing OpenAPI file
uses: actions/checkout@v4
with:
path: oas-examples-repo
repository: readmeio/oas-examples
# Since this workflow file is in the `rdme` repository itself,
# we need to test the GitHub Action using the current commit.
# This step builds the `rdme` action code so we can do that.
#
# This step is not required for syncing your docs to ReadMe!
- name: Rebuild GitHub Action for testing purposes
run: npm ci && npm run build:gha
working-directory: rdme-repo
- name: Run `openapi validate` command
uses: ./rdme-repo/
with:
rdme: openapi validate oas-examples-repo/3.1/json/petstore.json
- name: Run `openapi validate` command (legacy topic separator)
uses: ./rdme-repo/
with:
rdme: openapi:validate oas-examples-repo/3.1/json/petstore.json
- name: Run `openapi validate` with filename in quotes
uses: ./rdme-repo/
with:
rdme: openapi validate "oas-examples-repo/3.1/json/petstore.json"
- name: Run `openapi validate` on an invalid file
uses: ./rdme-repo/
id: openapi-validate-fail
continue-on-error: true
with:
rdme: openapi validate rdme-repo/__tests__/__fixtures__/invalid-oas.json
- name: Assert that previous validation step failed
if: ${{ steps.openapi-validate-fail.outcome == 'failure' }}
run: echo "The validation in the previous step failed as expected."
- name: Throw error if previous validation step did not fail
if: ${{ steps.openapi-validate-fail.outcome == 'success' }}
run: echo "::error::Expected validation in previous step to fail" && exit 1
# this is a test to ensure that the rdme github action can run properly
# the way that our users invoke it
- name: E2E run of `openapi validate` on `next` branch
uses: readmeio/rdme@next
if: ${{ github.ref }} == 'refs/heads/next'
with:
rdme: openapi validate oas-examples-repo/3.1/json/petstore.json
# Docs: https://rdme-test.readme.io
- name: Run `openapi` command
uses: ./rdme-repo/
with:
rdme: openapi upload oas-examples-repo/3.1/json/petstore.json --key=${{ secrets.RDME_REFACTORED_TEST_PROJECT_API_KEY }}
- name: Run `openapi` command with env var
uses: ./rdme-repo/
with:
rdme: openapi upload oas-examples-repo/3.1/json/petstore.json
env:
RDME_API_KEY: ${{ secrets.RDME_REFACTORED_TEST_PROJECT_API_KEY }}
- name: Run `openapi` command with other env var
uses: ./rdme-repo/
with:
rdme: openapi upload oas-examples-repo/3.1/json/petstore.json
env:
README_API_KEY: ${{ secrets.RDME_REFACTORED_TEST_PROJECT_API_KEY }}
- name: Run `openapi` command with weird arg syntax
uses: ./rdme-repo/
with:
rdme: openapi upload "oas-examples-repo/3.1/json/petstore.json" --key "${{ secrets.RDME_REFACTORED_TEST_PROJECT_API_KEY }}"