diff --git a/.github/workflows/deploy_test_docs.yml b/.github/workflows/deploy_test_docs.yml new file mode 100644 index 00000000..e9ecdb8a --- /dev/null +++ b/.github/workflows/deploy_test_docs.yml @@ -0,0 +1,37 @@ +name: Smart Forms Docs Deployment Workflow + +on: + push: + +permissions: + contents: read + pages: write + id-token: write + +jobs: + deploy-docusaurus-s3: + name: Deploy Docusaurus to S3 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js 18.x + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: npm + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::209248795938:role/SmartFormsReactAppDeployment + aws-region: ap-southeast-2 + + - name: Install dependencies + run: npm ci + + - name: Build documentation website + run: npm run build -w documentation + + - name: Upload static Docusaurus site to S3 + run: aws s3 sync documentation/build s3://smart-forms-test-docs/docz --cache-control no-cache diff --git a/deployment/cloudfront/SmartFormsRedirectToCorrectRoute.js b/deployment/cloudfront/SmartFormsRedirectToCorrectRoute.js index c6c5cdb7..b085e05b 100644 --- a/deployment/cloudfront/SmartFormsRedirectToCorrectRoute.js +++ b/deployment/cloudfront/SmartFormsRedirectToCorrectRoute.js @@ -103,6 +103,28 @@ function handler(event) { return request; } + + // Handle Docs routes + if (uri.includes('/docs')) { + // Reroute to smartforms.csiro.au/docs/index.html + if (uri === '/docs/') { + request.uri += 'index.html'; + return request; + } + + if (uri === '/docs') { + request.uri = '/redirect.html'; + return request; + } + + if (!uri.includes('.')) { + request.uri += '/index.html'; + return request; + } + + return request; + } + // Handle Forms Server API routes if (uri.includes('/api')) { // Remove the /api prefix