Skip to content

Commit

Permalink
chore: add CI workflow pkg
Browse files Browse the repository at this point in the history
  • Loading branch information
andrei0x309 committed Jul 10, 2024
1 parent 86bdfd1 commit 7eab211
Show file tree
Hide file tree
Showing 7 changed files with 196 additions and 45 deletions.
37 changes: 37 additions & 0 deletions .github/bun-workflow.yaml
Original file line number Diff line number Diff line change
@@ -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
38 changes: 38 additions & 0 deletions .github/node-workflow.yaml
Original file line number Diff line number Diff line change
@@ -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
43 changes: 24 additions & 19 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -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
- name: Run Bun Script - Push
if: github.event_name == 'push'
run: bun run index.ts '${{ toJSON(secrets) }}' '${{ toJSON(github.event) }}' push
16 changes: 2 additions & 14 deletions CI/README.md
Original file line number Diff line number Diff line change
@@ -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.
Binary file modified CI/bun.lockb
Binary file not shown.
100 changes: 91 additions & 9 deletions CI/index.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,104 @@
import { YupAPI } from 'yup-api-interact'
import { FCHubUtils } from 'farcaster-hub-utils'

const args = Bun.argv.slice(2);

const args = Bun.argv.slice(3);

const secrets = JSON.parse(args[0]);
const githubEvvent = JSON.parse(args[1]);
const secrets = args[0]
const event = args[1]
const action = args[2]

type TGithubEvent = {
inputs: {
version: string
},
forced: boolean,
repository: {
name: string,
full_name: string,
html_url: string,
description: string
},
head_commit: {
id: string,
message: string,
timestamp: string,
url: string,
author: {
name: string,
email: string,
username: string
},
committer: {
name: string,
email: string,
username: string
}
}
}

const main = async () => {
const YUP_PK = secrets.YUP_PK;
const ENABLED = true;
let YUP_PK = '';
let FC_SIGNER = ''
let GithubEvent: TGithubEvent = {} as TGithubEvent;
const USER_FID = 709233;

console.log('Anouncement enabled status: ', '[ ', ENABLED, ' ]');

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')
}

const api = new YupAPI({ PK: YUP_PK, token: '' });
} 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']
})

if(action === 'commit') {
console.log('Announcing commit')
console.log(secrets, githubEvvent)
await fchubUtils.createFarcasterPost({
content: message,
})
} else {
console.log('No action required')
}
}

console.log('Workflow executed successfully');

}

Expand Down
7 changes: 4 additions & 3 deletions CI/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}

0 comments on commit 7eab211

Please sign in to comment.