Skip to content

Commit

Permalink
ci: lint openapi schema during builds
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredhendrickson13 committed May 3, 2024
1 parent 3df3ef9 commit 27dca7f
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,50 @@ jobs:
run: |
/usr/local/bin/VBoxManage controlvm ${{ matrix.pfsense_version }} poweroff || true
/usr/local/bin/VBoxManage snapshot ${{ matrix.pfsense_version }} restore initial
lint_openapi:
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
name: pfSense-pkg-RESTAPI-${{ env.build_version }}-${{ matrix.freebsd_id }}.pkg
path: pfSense-pkg-RESTAPI-${{ env.build_version }}-${{ matrix.freebsd_id }}.pkg

- name: Setup pfSense VM
run: |
/usr/local/bin/VBoxManage controlvm ${{ matrix.pfsense_version }} poweroff || true
/usr/local/bin/VBoxManage snapshot ${{ matrix.pfsense_version }} restore initial
/usr/local/bin/VBoxManage startvm ${{ matrix.pfsense_version }} --type headless
sleep 5
# This is only necessary until GitHub Actions allows an easier way to get a URL to download the artifact within pfSense
- name: Copy pfSense-pkg-RESTAPI build to pfSense
run: |
pfsense-vshell --host ${{ matrix.pfsense_version }}.jaredhendrickson.com -u admin -p pfsense -c 'pfSsh.php playback enablesshd' -k
pfsense-vshell --host ${{ matrix.pfsense_version }}.jaredhendrickson.com -u admin -p pfsense -c "mkdir /root/.ssh/ && echo $(cat ~/.ssh/id_rsa.pub) > /root/.ssh/authorized_keys" -k
scp -o StrictHostKeyChecking=no pfSense-pkg-RESTAPI-${{ env.build_version }}-${{ matrix.freebsd_id }}.pkg/pfSense-pkg-RESTAPI-${{ env.build_version }}-${{ matrix.freebsd_id }}.pkg admin@${{ matrix.pfsense_version }}.jaredhendrickson.com:/tmp/
- name: Install pfSense-pkg-RESTAPI on pfSense
run: |
ssh -o StrictHostKeyChecking=no -o LogLevel=quiet admin@${{ matrix.pfsense_version }}.jaredhendrickson.com "pkg -C /dev/null add /tmp/pfSense-pkg-RESTAPI-${{ env.build_version }}-${{ matrix.freebsd_id }}.pkg"
sleep 5
- name: Fetch OpenAPI schema from pfSense
run: curl -s -k -u admin:pfsense -X GET https://${{ matrix.pfsense_version }}.jaredhendrickson.com/api/v2/schema > openapi.json

- uses: actions/upload-artifact@v3
with:
name: openapi-${{ env.build_version }}.json
path: openapi-${{ env.build_version }}.json

- name: Teardown pfSense VM
if: "${{ always() }}"
run: |
/usr/local/bin/VBoxManage controlvm ${{ matrix.pfsense_version }} poweroff || true
/usr/local/bin/VBoxManage snapshot ${{ matrix.pfsense_version }} restore initial
- name: Lint OpenAPI spec
uses: vaibhav-jain/spectral-action/@v2.6
with:
file_path: openapi-${{ env.build_version }}.json

0 comments on commit 27dca7f

Please sign in to comment.