Skip to content

[MANIFEST] Set up a workflow to test clearing cache on the notify website post a deploy #14

[MANIFEST] Set up a workflow to test clearing cache on the notify website post a deploy

[MANIFEST] Set up a workflow to test clearing cache on the notify website post a deploy #14

name: Call Notification clear cache API
# on:
# workflow_call:
# secrets:
# CACHE_CLEAR_USER_NAME:
# required: true
# CACHE_CLEAR_CLIENT_SECRET:
# required: true
# API_KEY:
# required: true
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
inputs:
reason:
description: "Reason for manual trigger"
required: true
default: "Testing"
jobs:
call-api:
runs-on: ubuntu-latest
steps:
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
- name: Install dependencies
run: |
npm install jsonwebtoken axios
- name: Install dependencies and call API
env:
CACHE_CLEAR_USER_NAME: ${{ secrets.STAGING_CACHE_CLEAR_USER_NAME }}
CACHE_CLEAR_CLIENT_SECRET: ${{ secrets.STAGING_CACHE_CLEAR_CLIENT_SECRET }}
run: |
node -e "
const jwt = require('jsonwebtoken');
const axios = require('axios');
const payload = {
iss: process.env.CACHE_CLEAR_USER_NAME,
iat: Math.floor(Date.now() / 1000),
};
const token = jwt.sign(payload, process.env.CACHE_CLEAR_CLIENT_SECRET, { algorithm: 'HS256' });
axios.post('https://api-lambda.staging.notification.cdssandbox.xyz/cache-clear', null, {
headers: {
'Authorization': 'Bearer ${token}',
'Content-Type': 'application/json',
}
})
.then(response => {
console.log('API call successful:', response.data);
})
.catch(error => {
console.error('Error calling API:', error.response ? error.response.data : error.message);
process.exit(1);
});
"