diff --git a/.github/workflows/feature-list.yml b/.github/workflows/feature-list.yml index 61d9d19f..560f78dd 100644 --- a/.github/workflows/feature-list.yml +++ b/.github/workflows/feature-list.yml @@ -28,48 +28,49 @@ jobs: restore-keys: | feature-data-sha - - name: Check for updates in source repository - id: check-updates - uses: actions/github-script@v7 - with: - script: | - const { data: sourceFile } = await github.rest.repos.getContent({ - owner: 'layer5labs', - repo: 'meshery-extensions-packages', - path: 'feature_data.json', - ref: 'master' - }); - - // Store the latest commit SHA - const latestSHA = sourceFile.sha; - - const fs = require('fs'); - - // Check if we have a previous SHA - let hasUpdates = true; - if (fs.existsSync('.sha-cache')) { - const lastSHA = fs.readFileSync('.sha-cache', 'utf8'); - hasUpdates = lastSHA !== latestSHA; - } - - if (hasUpdates) { - // Save the new SHA - fs.mkdirSync('.sha-cache', { recursive: true }); - fs.writeFileSync('.sha-cache', latestSHA); - - // Decode and save the content - const content = Buffer.from(sourceFile.content, 'base64').toString('utf8'); - - // Create data directory if it doesn't exist - fs.mkdirSync('data', { recursive: true }); - - // Write the new content - fs.writeFileSync(process.env.FEATURES_FILE, content); - - core.setOutput('has-updates', 'true'); - } else { - core.setOutput('has-updates', 'false'); - } + - name: Check for updates in source repository + id: check-updates + uses: actions/github-script@v7 + with: + script: | + const { data: sourceFile } = await github.rest.repos.getContent({ + owner: 'layer5labs', + repo: 'meshery-extensions-packages', + path: 'feature_data.json', + ref: 'master' + }); + + // Store the latest commit SHA + const latestSHA = sourceFile.sha; + + const fs = require('fs'); + + // Check if we have a previous SHA + let hasUpdates = true; + const shaCachePath = '.sha-cache/latest-sha'; + if (fs.existsSync(shaCachePath)) { + const lastSHA = fs.readFileSync(shaCachePath, 'utf8'); + hasUpdates = lastSHA !== latestSHA; + } + + if (hasUpdates) { + // Save the new SHA + fs.mkdirSync('.sha-cache', { recursive: true }); + fs.writeFileSync(shaCachePath, latestSHA); + + // Decode and save the content + const content = Buffer.from(sourceFile.content, 'base64').toString('utf8'); + + // Create data directory if it doesn't exist + fs.mkdirSync('data', { recursive: true }); + + // Write the new content + fs.writeFileSync(process.env.FEATURES_FILE, content); + + core.setOutput('has-updates', 'true'); + } else { + core.setOutput('has-updates', 'false'); + } - name: Commit changes if: steps.check-updates.outputs.has-updates == 'true'