diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bcd5f3f2..b5865b1d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -92,3 +92,22 @@ jobs: uses: actions/download-artifact@v3 - name: Publish to S3 run: npm run publish-cdn + + clearing-cache: + name: Clear cache + runs-on: ubuntu-latest + needs: [check-version, publish-npm, publish-cli-s3, publish-cdn] + if: needs.check-version.outputs.changed == 'true' + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Clearing cache + run: npm run clear-cache + - name: Invalidate CloudFront + uses: chetan/invalidate-cloudfront-action@v2 + env: + PATHS: '/redoc/*' + AWS_REGION: 'us-east-1' + DISTRIBUTION: ${{ secrets.DISTRIBUTION }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/package.json b/package.json index 1ac82aa5..10aac209 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "compile:cli": "tsc custom.d.ts cli/index.ts --target es6 --module commonjs --types yargs", "build:demo": "webpack --mode=production --config demo/webpack.config.ts", "publish-cdn": "scripts/publish-cdn.sh", + "clear-cache": "scripts/clear-cache.sh", "deploy:demo": "aws s3 sync demo/dist s3://production-redoc-demo --acl=public-read", "license-check": "license-checker --production --onlyAllow 'MIT;ISC;Apache-2.0;BSD;BSD-2-Clause;BSD-3-Clause;CC-BY-4.0;Python-2.0' --summary", "docker:build": "docker build -f config/docker/Dockerfile -t redoc .", diff --git a/scripts/clear-cache.sh b/scripts/clear-cache.sh new file mode 100644 index 00000000..5a9fc3c7 --- /dev/null +++ b/scripts/clear-cache.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -e # exit on error + +echo Clearing cache +curl -i -X POST https://purge.jsdelivr.net/ \ + -H 'cache-control: no-cache' \ + -H 'content-type: application/json' \ + -d '{ + "path": [ + "npm/redoc@latest/bundles/redoc.browser.lib.js", + "npm/redoc@latest/bundles/redoc.lib.js", + "npm/redoc@latest/bundles/redoc.standalone.js" + ] + }' + +echo +echo Cache cleared successfully + +exit 0 \ No newline at end of file