Skip to content

Import Keys

Import Keys #77

Workflow file for this run

name: Import Keys
on:
workflow_dispatch:
inputs:
spreadsheet_uri:
description: Link of the spreadsheet containing keys.
type: string
default: https://docs.google.com/spreadsheets/d/e/2PACX-1vQwzrUSKfuSRcpkp7sJTw1cSB63s4HCjYLJeGPWECsvqn222hjaaONQlN4X8auKvlaB0es3BqV5rQyz/pub?gid=64355745&single=true&output=csv
schedule:
- cron: "0 0 * * *"
jobs:
fetch-keys:
name: Fetch Keys
runs-on: ubuntu-22.04
steps:
- name: Check out code
uses: actions/checkout@v4
with:
token: ${{ secrets.GH_ACCESS_TOKEN }}
fetch-depth: 1
- name: Set spreadsheet_uri as environment variable
run: echo "spreadsheet_uri=https://docs.google.com/spreadsheets/d/e/2PACX-1vQwzrUSKfuSRcpkp7sJTw1cSB63s4HCjYLJeGPWECsvqn222hjaaONQlN4X8auKvlaB0es3BqV5rQyz/pub?gid=64355745&single=true&output=csv" >> $GITHUB_ENV
if: inputs.spreadsheet_uri != ''
echo "spreadsheet_uri=${{ inputs.spreadsheet_uri }}" >> $GITHUB_ENV
- name: Download Google Sheets CSV
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
const path = require('path');
const url = `${{ env.spreadsheet_uri }}`;
const filePath = path.resolve(process.cwd(), './keys.csv');
fetch(url)
.then(response => {
if (!response.ok) {
if (response.status === 404) {
console.error('Error: Page not found (404)');
process.exit(1);
}
throw new Error(`Failed to fetch CSV: ${response.statusText}`);
}
return response.text();
})
.then(data => {
fs.writeFileSync(filePath, data, 'utf8');
console.log(`CSV data saved to ${filePath}`);
})
.catch(error => {
console.error('Error fetching CSV:', error.message);
process.exit(1);
});
- name: Create permissions folder
run: |
[ ! -d "./server/permissions" ] && mkdir -p "./server/permissions";
mv keys.csv server/permissions/keys.csv;
- name: Save keys.csv to docs/assets/excel
run: cp server/permissions/keys.csv docs/assets/excel/keys.csv
- name: Pull changes from remote
run: git pull origin master
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Added permissions keys.
branch: master
commit_options: "--signoff"
commit_user_name: l5io
commit_user_email: [email protected]
commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>author of the commit that triggered the run
- name: Send Email on Generate permission keys failure
if: ${{ failure() }}
uses: dawidd6/[email protected]
env:
msg: ${{ env.reason != '' && env.reason || ' Generate permission keys failure' }}
with:
server_address: smtp.gmail.com
server_port: 465
username: ${{ secrets.MAIL_USERNAME }}
password: ${{ secrets.MAIL_PASSWORD }}
subject: GitHub Actions - Generate permission keys failure
from: |
"Meshery" <[email protected]>
to: |
"Layer5 Support" <[email protected]>
html_body: |
<b>REPO:</b> ${{ github.repository }}<br />
<b>WORKFLOW:</b> ${{ github.workflow }}<br />
<b>JOB:</b> ${{ github.job }}<br />
<b>REASON:</b> ${{ env.msg }}<br />
<b>DETAILS:</b> <a href="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}${{ job.status }}">${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}</a><br />