feat: new automation package #3062
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Testing | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
- staging/** | |
- feat/** | |
- feature/** | |
- staging/** | |
jobs: | |
unit-tests: | |
runs-on: warp-ubuntu-latest-x64-16x | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
cache: 'yarn' | |
- name: Install rust | |
uses: dtolnay/[email protected] | |
- uses: jetli/[email protected] | |
with: | |
# Optional version of wasm-pack to install(eg. 'v0.9.1', 'latest') | |
version: 'latest' | |
- name: Install project dependencies | |
run: yarn --frozen-lockfile | |
- uses: nrwl/nx-set-shas@v3 | |
with: | |
main-branch-name: 'master' | |
- name: Build | |
run: yarn build:dev | |
- name: Run Unit tests | |
run: yarn tools --test --unit | |
integration-tests: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
DATIL_COMMIT_HASH: ae3c20e07eb933b61073689b95f56867c03de252 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Checkout Lit Actions | |
uses: actions/checkout@v4 | |
id: checkout | |
with: | |
fetch-depth: 0 | |
repository: LIT-Protocol/lit-assets | |
ref: ${{env.DATIL_COMMIT_HASH}} | |
token: ${{secrets.GH_PAT_FOR_SHIVA}} | |
path: ${{ github.workspace }}/lit-assets/ | |
submodules: false | |
sparse-checkout: | | |
blockchain | |
rust/lit-node | |
- name: Check LA dir | |
run: ls -la ${{github.workspace}}/lit-assets | |
- name: Install LA Blockchain Dependencies | |
run: npm i | |
working-directory: ${{github.workspace}}/lit-assets/blockchain/contracts | |
- name: Docker login | |
id: login | |
run: docker login ghcr.io/ -u ${{ github.actor }} --password ${{secrets.GH_PAT_FOR_SHIVA}} | |
- name: Pull Shiva Container | |
id: shiva-pull | |
run: docker pull ghcr.io/lit-protocol/shiva:latest | |
- name: Run Shiva Container | |
id: shiva-runner | |
run: docker run -d -m 32g -p 8000:8000 -p 8545:8545 -p 7470:7470 -p 7471:7471 -p 7472:7472 -p 7473:7473 -p 7474:7474 -p 7475:7475 -v ${{github.workspace}}/lit-assets:/data -e GH_PAT=${{secrets.GH_PAT_FOR_SHIVA}} -e HASH=$DATIL_COMMIT_HASH -e IPFS_API_KEY=${{secrets.IPFS_API_KEY}} --name shiva ghcr.io/lit-protocol/shiva:latest | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- uses: jetli/[email protected] | |
with: | |
# Optional version of wasm-pack to install(eg. 'v0.9.1', 'latest') | |
version: 'latest' | |
- name: Install project dependencies | |
run: yarn --frozen-lockfile | |
- uses: nrwl/nx-set-shas@v3 | |
with: | |
main-branch-name: 'master' | |
- name: Build packages | |
id: build | |
run: yarn build:dev | |
- name: Copy ENV File | |
run: cp .env.ci .env | |
- name: Run End to End Tests | |
if: steps.build.outputs.exit_code == 0 | |
run: yarn test:local --filter=testUseEoaSessionSigsToExecuteJsSigning,testUseEoaSessionSigsToPkpSign,testUsePkpSessionSigsToExecuteJsSigning,testUsePkpSessionSigsToPkpSign,testUseValidLitActionCodeGeneratedSessionSigsToPkpSign,testUseValidLitActionCodeGeneratedSessionSigsToExecuteJsSigning,testDelegatingCapacityCreditsNFTToAnotherWalletToExecuteJs,testEthAuthSigToEncryptDecryptString,testExecuteJsSignAndCombineEcdsa,testExecutJsDecryptAndCombine,testExecuteJsBroadcastAndCollect --exclude=Parallel | |
- name: Get Container Logs | |
if: always() | |
run: docker logs shiva | |
- name: Post Pull Shiva Container | |
id: container-stop | |
if: steps.shiva-pull.outputs.exit_code == 0 | |
run: docker stop shiva && docker rm shiva | |
- name: Post Pull Shiva Image | |
if: steps.shiva-pull.outputs.exit_code == 0 | |
run: docker rmi ghcr.io/lit-protocol/shiva | |
ping-lit-configuration-guides: | |
runs-on: ubuntu-latest | |
# needs: [unit-tests, integration-tests] # Make sure this job runs after others complete | |
steps: | |
- name: Get PR labels | |
id: pr-labels | |
uses: actions/github-script@v6 | |
if: github.event_name == 'pull_request' | |
with: | |
script: | | |
const labels = context.payload.pull_request.labels | |
.map(label => label.name) | |
.filter(name => name.startsWith('tag:')) | |
.map(name => name.split(':')[1]); | |
if (labels.length > 0) { | |
core.setOutput('tag', labels[0]); | |
} else { | |
core.setOutput('skip', 'true'); | |
} | |
- name: Trigger dependencies bot in lit-configuration-guides | |
if: steps.pr-labels.outputs.skip != 'true' | |
run: | | |
TAG="${{ steps.pr-labels.outputs.tag }}" | |
curl -X POST \ | |
-H "Accept: application/vnd.github.everest-preview+json" \ | |
-H "Authorization: token ${{ secrets.GH_PAT_LIT_CONFIGURATION_GUIDES_REPO }}" \ | |
https://api.github.com/repos/LIT-Protocol/lit-configuration-guides/dispatches \ | |
-d "{\"event_type\":\"dependency_update\", \"client_payload\": {\"labels\": [\"$TAG\"]}}" | |
env: | |
GH_PAT_LIT_CONFIGURATION_GUIDES_REPO: ${{ secrets.GH_PAT_LIT_CONFIGURATION_GUIDES_REPO }} |