forked from npateriya/meraki-openapi
-
Notifications
You must be signed in to change notification settings - Fork 1
93 lines (78 loc) · 3.21 KB
/
demo.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
# This is a basic workflow to help analyze open API specs against API Guidelines
name: demo CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
# branches: [ master, released, demo, test ]
# v0.1-1
tags: [v*.*-*]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
SPEC_FOLDER: openapi
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
analyze:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# TODO: /refs/heads/master and release, how to?
# if: startsWith(github.ref, 'refs/heads/')
if: startsWith(github.ref, 'refs/tags/v0.1')
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Runs a API registry spec analyzer
- name: Analyze catalogue spec
if: always()
run: |
echo Analyze spec against rules
./.bin/apiregistryctl analyze openapi/catalogue.json
# - name: Diff catalogue spec with latest
# if: always()
# run: |
# echo Diff catalogue spec
# ./.bin/apiregistryctl diff openapi/catalogue.json -s catalogue --latest -o text --fail-on-incompatible
# - uses: actions/checkout@v3
# - name: Upload spec
# # if: startsWith(github.ref, 'refs/tags/v')
# uses: ./.github/actions/upload
upload:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Run parallelly
if: startsWith(github.ref, 'refs/tags/v')
# Use the below one instead of the above to Run sequentially
# needs: analyze
# if: always() && startsWith(github.ref, 'refs/tags/v')
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Set tag env
- name: Set tag env
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Echo tag env
run: |
echo ${{ env.RELEASE_TAG }}
# Parse and set verstion and revision env from tag
- id: parse-tags
name: Parse tags
uses: actions/github-script@v6
with:
script: |
const items = "${{ env.RELEASE_TAG }}".split('-')
console.log(items)
core.setOutput('version', items[0])
core.setOutput('revision', items[1])
- name: Set version env
run: echo "RELEASE_VERSION=${{steps.parse-tags.outputs.version}}" >> $GITHUB_ENV
- name: Set revision env
run: echo "RELEASE_REVISON=${{steps.parse-tags.outputs.revision}}" >> $GITHUB_ENV
# Runs uploading a spec to API registry
- name: Upload specs
run: |
echo Upload a spec to api registry
./.bin/apiregistryctl service uploadspec openapi/catalogue.json -s catalogue --version "${{ env.RELEASE_VERSION }}" --revision "${{ env.RELEASE_REVISON }}"