-
Notifications
You must be signed in to change notification settings - Fork 71
146 lines (146 loc) · 5.93 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Find latest datil commit hash for last successful "rust/lit-node-build-commit-hash" workflow in the Lit Assets repo
uses: LIT-Protocol/last-successful-build-action@372ea3325a894558ee74d970217ca421ea562fba
id: last-successful-build
with:
token: "${{ secrets.GH_PAT_FOR_SHIVA }}"
branch: "datil"
workflow: "rust/lit-node-build-commit-hash"
repo: LIT-Protocol/lit-assets
# this outputs to dollarSign{{ steps.last-successful-build.outputs.lastSuccessfulBuildSha }}
- name: Checkout Lit Assets
uses: actions/checkout@v4
id: checkout
with:
fetch-depth: 0
repository: LIT-Protocol/lit-assets
ref: ${{ steps.last-successful-build.outputs.lastSuccessfulBuildSha }}
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=${{ steps.last-successful-build.outputs.lastSuccessfulBuildSha }} -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 }}