From 7eab21188bcf425a1564f39f51654e4b4194aac0 Mon Sep 17 00:00:00 2001 From: Andrei O Date: Wed, 10 Jul 2024 11:36:50 +0300 Subject: [PATCH] chore: add CI workflow pkg --- .github/bun-workflow.yaml | 37 +++++++++++++ .github/node-workflow.yaml | 38 ++++++++++++++ .github/workflows/main.yaml | 43 +++++++++------- CI/README.md | 16 +----- CI/bun.lockb | Bin 23502 -> 23475 bytes CI/index.ts | 100 ++++++++++++++++++++++++++++++++---- CI/package.json | 7 +-- 7 files changed, 196 insertions(+), 45 deletions(-) create mode 100644 .github/bun-workflow.yaml create mode 100644 .github/node-workflow.yaml diff --git a/.github/bun-workflow.yaml b/.github/bun-workflow.yaml new file mode 100644 index 0000000..3fc5846 --- /dev/null +++ b/.github/bun-workflow.yaml @@ -0,0 +1,37 @@ +# Not supported due to compatibility issues with Bun Http2 stdlib +name: Bun Main Workflow + +on: + push: + branches: + - main + workflow_dispatch: + inputs: + version: + description: 'Version' + required: true + +jobs: + run-bun-script: + runs-on: ubuntu-latest + defaults: + run: + working-directory: CI + steps: + - uses: actions/checkout@v3 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + version: '1.1.18' + + - name: Install Dependencies + run: bun install + + - name: Run Bun Script - Update + if: github.event_name == 'workflow_dispatch' + run: bun run index.ts '${{ toJSON(secrets) }}' '${{ toJSON(github.event) }}' update + + - name: Run Bun Script - Push + if: github.event_name == 'push' + run: bun run index.ts '${{ toJSON(secrets) }}' '${{ toJSON(github.event) }}' push diff --git a/.github/node-workflow.yaml b/.github/node-workflow.yaml new file mode 100644 index 0000000..655d558 --- /dev/null +++ b/.github/node-workflow.yaml @@ -0,0 +1,38 @@ +# Not supported due to compatibility issues with Bun Http2 stdlib +name: Node Main Workflow + +on: + push: + branches: + - main + workflow_dispatch: + inputs: + version: + description: 'Version' + required: true + +jobs: + run-node-script: + runs-on: ubuntu-latest + defaults: + run: + working-directory: CI + steps: + - name: Checkout Action + uses: actions/checkout@v4 + + - name: Setup Node Action + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install Dependencies + run: yarn install + + - name: Run Node Script - Update + if: github.event_name == 'workflow_dispatch' + run: yarn tsx index.ts '${{ toJSON(secrets) }}' '${{ toJSON(github.event) }}' update + + - name: Run Node Script - Push + if: github.event_name == 'push' + run: yarn tsx index.ts '${{ toJSON(secrets) }}' '${{ toJSON(github.event) }}' push diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index b0f1175..3fc5846 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,32 +1,37 @@ -name: Bun Script Execution +# Not supported due to compatibility issues with Bun Http2 stdlib +name: Bun Main Workflow on: - #push: # Trigger on push events to master branch (you can adjust this trigger) - workflow_dispatch: # Trigger on manual workflow dispatch - + push: + branches: + - main + workflow_dispatch: + inputs: + version: + description: 'Version' + required: true + jobs: run-bun-script: runs-on: ubuntu-latest + defaults: + run: + working-directory: CI steps: - uses: actions/checkout@v3 - name: Setup Bun uses: oven-sh/setup-bun@v2 + with: + version: '1.1.18' - - name: Get Parameters (for push event) - if: github.event_name == 'push' - run: | - # No parameters are automatically provided on push events - echo "No parameters provided on push event." - - - name: Get Parameters (for manual trigger) + - name: Install Dependencies + run: bun install + + - name: Run Bun Script - Update if: github.event_name == 'workflow_dispatch' - run: | - PARAM_VALUE_1=${{ github.event.inputs.param1 }} - PARAM_VALUE_2=${{ github.event.inputs.param2 }} - # ... add more parameter retrieval as needed - # Use empty strings if parameters are not provided + run: bun run index.ts '${{ toJSON(secrets) }}' '${{ toJSON(github.event) }}' update - - name: Run Bun Script - run: bun run index.ts --param1 $PARAM_VALUE_1 --param2 $PARAM_VALUE_2 - # Adjust the command based on your parameter names and flags \ No newline at end of file + - name: Run Bun Script - Push + if: github.event_name == 'push' + run: bun run index.ts '${{ toJSON(secrets) }}' '${{ toJSON(github.event) }}' push diff --git a/CI/README.md b/CI/README.md index 957cf82..9153c8d 100644 --- a/CI/README.md +++ b/CI/README.md @@ -1,15 +1,3 @@ -# ci +# CI -To install dependencies: - -```bash -bun install -``` - -To run: - -```bash -bun run index.ts -``` - -This project was created using `bun init` in bun v1.1.7. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. +Pacakge to run CI/CD pipelines for the project. diff --git a/CI/bun.lockb b/CI/bun.lockb index da8a37c0c55afb1828dc76e2e0aae15ef912e732..a257cc835f8acc2536fe1c6dc8cca1ef642a6607 100644 GIT binary patch delta 2507 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 { - const YUP_PK = secrets.YUP_PK; + const ENABLED = true; + let YUP_PK = ''; + let FC_SIGNER = '' + let GithubEvent: TGithubEvent = {} as TGithubEvent; + const USER_FID = 709233; - const api = new YupAPI({ PK: YUP_PK, token: '' }); + console.log('Anouncement enabled status: ', '[ ', ENABLED, ' ]'); - if(action === 'commit') { - console.log('Announcing commit') - console.log(secrets, githubEvvent) + try { + const parsedSecrets = JSON.parse(secrets); + YUP_PK = parsedSecrets.YUP_PK; + FC_SIGNER = parsedSecrets.FC_SIGNER; + GithubEvent = JSON.parse(event); + } catch (e) { + console.error('Error parsing data', e) } + const yupAPI = new YupAPI({ PK: YUP_PK}); + const fchubUtils = new FCHubUtils(FC_SIGNER, USER_FID); + + if(action === 'update') { + const VERSION = GithubEvent.inputs.version; + const message = `Github ClearWallet new version ${VERSION} has been released!\n + ChromeStore: https://bit.ly/clw-evm \n + Github: https://github.com/andrei0x309/clear-wallet + `; + + if(ENABLED) { + await yupAPI.sendPost({ + content: message, + platforms: ['twitter', 'threads', 'bsky', 'lens'] + }) + await fchubUtils.createFarcasterPost({ + content: message, + }) + } else { + console.log('No action required') + } + + } else if(action === 'push') { + if(ENABLED && !GithubEvent.forced && GithubEvent?.head_commit?.message.includes('chore:')) { + const commiter = GithubEvent?.head_commit?.author.username || GithubEvent?.head_commit?.committer?.username || '' + const message = `Github ClearWallet new repo commit!\n + ChromeStore: https://bit.ly/clw-evm \n + Commit: ${GithubEvent.head_commit.url} + ${ commiter ? `By: ${commiter}` : ''} + `; + + await yupAPI.sendPost({ + content: message, + platforms: ['twitter', 'threads', 'bsky', 'lens'] + }) + + await fchubUtils.createFarcasterPost({ + content: message, + }) + } else { + console.log('No action required') + } + } + + console.log('Workflow executed successfully'); + } main().catch(console.error); diff --git a/CI/package.json b/CI/package.json index 8ee1623..077da12 100644 --- a/CI/package.json +++ b/CI/package.json @@ -9,7 +9,8 @@ "typescript": "^5.0.0" }, "dependencies": { - "yup-api-interact": "^0.1.4", - "farcaster-hub-utils": "https://github.com/andrei0x309/farcaster-hub-utils#main" - } + "farcaster-hub-utils": "^0.1.7", + "yup-api-interact": "^0.1.6" + }, + "license": "MIT" } \ No newline at end of file