diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml new file mode 100644 index 00000000000..250b966ef60 --- /dev/null +++ b/.github/workflows/linkcheck.yml @@ -0,0 +1,63 @@ +# .github/workflows/run-htmltest.yml +# (c) 2021 Robb Romans +# +# Run htmltest link checker on generated HTML output in dist/ +# https://github.com/wjdp/htmltest +# +name: run-htmltest +on: + schedule: + # 10am UTC on weekdays + - cron: '0 10 * * 1,2,3,4,5' +jobs: + htmltest: + runs-on: ubuntu-large + container: + image: ghcr.io/cirruslabs/flutter:latest + steps: + - name: Checkout Code + uses: actions/checkout@v4 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: stable + cache: true + - name: Install doc2go + run: go install go.abhg.dev/doc2go@latest + - name: Generate API reference + run: doc2go -out www ./... + - name: Test HTML + # https://github.com/wjdp/htmltest-action/ + # Don't fail the build on broken links + continue-on-error: false + uses: wjdp/htmltest-action@master + with: + config: .htmltest.yml + - name: Archive htmltest results + uses: actions/upload-artifact@v3 + # Note: Set ACTIONS_RUNTIME_TOKEN env variable to test with nektos/act + with: + name: htmltest-report + path: tmp/.htmltest/htmltest.log + retention-days: 7 # Default is 90 days + - name: Login to Jira + if: failure() + uses: atlassian/gajira-login@v3 + env: + JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} + JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }} + JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} + - name: Create Jira ticket + if: failure() + id: create + uses: atlassian/gajira-create@v3 + env: + GITHUB_RUN_ID: ${{ github.run_id }} + with: + project: DOCS + issuetype: Bug + summary: Broken link detected + description: "For more info see https://github.com/viamrobotics/docs/actions/runs/${{ env.GITHUB_RUN_ID }}." + - name: Log created Jira issue + if: failure() + run: echo "Issue ${{ steps.create.outputs.issue }} was created" diff --git a/.htmltest.yml b/.htmltest.yml new file mode 100644 index 00000000000..770be2b3ba8 --- /dev/null +++ b/.htmltest.yml @@ -0,0 +1,18 @@ +DirectoryPath: "www" +EnforceHTTPS: true +IgnoreEmptyHref: true +IgnoreInternalEmptyHash: true +IgnoreDirectoryMissingTrailingSlash: false +IgnoreURLs: + - "app.viam.com" + - "fonts.gstatic.com" + - "contributor-covenant.org" + - "download.datasheets.com" +IgnoreDirs: + - "lib" +CacheExpires: "6h" +# IgnoreDirs: - if we need to ever ignore files +CheckInternal: false +CheckDoctype: false +CheckScripts: false +FileExtension: ".html" diff --git a/spatialmath/rotationMatrix.go b/spatialmath/rotationMatrix.go index 53453d9d6f6..1f936305008 100644 --- a/spatialmath/rotationMatrix.go +++ b/spatialmath/rotationMatrix.go @@ -38,7 +38,7 @@ func (rm *RotationMatrix) AxisAngles() *R4AA { } // Quaternion returns orientation in quaternion representation. -// reference: http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm +// reference: https://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm func (rm *RotationMatrix) Quaternion() quat.Number { var q quat.Number m := rm.mat diff --git a/spatialmath/rotationMatrix_test.go b/spatialmath/rotationMatrix_test.go index d8d7c2823c4..67e26c98121 100644 --- a/spatialmath/rotationMatrix_test.go +++ b/spatialmath/rotationMatrix_test.go @@ -11,7 +11,7 @@ import ( func TestQuaternionConversion(t *testing.T) { // Test that conversion to rotation matrix to quaternion is correct - // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/examples/index.htm + // https://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/examples/index.htm cos45 := 0.7071067811865476 cases := []struct { input [9]float64