1
+ ---
2
+ name : Update zkEVM API Package
3
+
4
+ on :
5
+ workflow_dispatch :
6
+
7
+ jobs :
8
+ update-api :
9
+ runs-on : ubuntu-latest
10
+ steps :
11
+ - name : Check out repository
12
+ uses : actions/checkout@v3
13
+
14
+ - name : Get current date and time
15
+ id : date
16
+ run : echo "::set-output name=date::$(date +'%Y-%m-%d-%H-%M-%S')"
17
+
18
+ - name : Download remote openapi.json
19
+ run : curl -o openapi.json https://imx-openapiv3-mr-sandbox.s3.us-east-2.amazonaws.com/openapi.json
20
+
21
+ - name : Ensure local openapi.yaml exists (if not, assume it's blank)
22
+ run : |
23
+ if [ ! -f ./src/Packages/ZkEvmApi/api~/openapi.yaml ]; then
24
+ echo "Creating empty openapi.yaml file..."
25
+ mkdir -p ./src/Packages/ZkEvmApi/api~
26
+ touch ./src/Packages/ZkEvmApi/api~/openapi.yaml
27
+ fi
28
+
29
+ - name : Compare openapi.json with openapi.yaml
30
+ id : comparison
31
+ run : |
32
+ if diff openapi.json ./src/Packages/ZkEvmApi/api~/openapi.yaml > /dev/null; then
33
+ echo "::set-output name=difference::false"
34
+ else
35
+ echo "::set-output name=difference::true"
36
+ fi
37
+
38
+ - name : Generate API if there are differences
39
+ if : steps.comparison.outputs.difference == 'true'
40
+ run : |
41
+ wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.8.0/openapi-generator-cli-7.8.0.jar -O openapi-generator-cli.jar
42
+ java -jar openapi-generator-cli.jar generate -i openapi.json -g csharp \
43
+ --library unityWebRequest -o ./ZkEvmApi \
44
+ --skip-validate-spec \
45
+ --additional-properties=apiName=ImmutableZkEvmApi,packageName=Immutable.Api.ZkEvm
46
+
47
+ - name : Copy generated files
48
+ if : steps.comparison.outputs.difference == 'true'
49
+ run : |
50
+ mkdir -p ./src/Packages/ZkEvmApi/api~
51
+ mkdir -p ./src/Packages/ZkEvmApi/Documentation~
52
+ mkdir -p ./src/Packages/ZkEvmApi/Runtime
53
+
54
+ rm -rf ./src/Packages/ZkEvmApi/api~/*
55
+ rm -rf ./src/Packages/ZkEvmApi/Documentation~/*
56
+ rm -rf ./src/Packages/ZkEvmApi/Runtime/*
57
+
58
+ cp -r ./ZkEvmApi/api/* ./src/Packages/ZkEvmApi/api~/
59
+ cp -r ./ZkEvmApi/docs/* ./src/Packages/ZkEvmApi/Documentation~/
60
+ cp -r ./ZkEvmApi/src/Immutable.Api.ZkEvm/* ./src/Packages/ZkEvmApi/Runtime/
61
+
62
+ - name : Clean up
63
+ if : steps.comparison.outputs.difference == 'true'
64
+ run : |
65
+ rm -rf ./ZkEvmApi
66
+ rm openapi-generator-cli.jar
67
+
68
+ - name : Create or update PR
69
+ if : steps.comparison.outputs.difference == 'true'
70
+ uses : gr2m/create-or-update-pull-request-action@v1
71
+ env :
72
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
73
+ with :
74
+ title : " feat: update immutable zkEVM API package"
75
+ body : " Update Immutable zkEVM API package"
76
+ branch : " chore/update-zkevm-api-${{ steps.date.outputs.date }}"
77
+ commit-message : " feat: update immutable zkEVM API package"
0 commit comments