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 : rm -rf ./ZkEvmApi
65+
66+ - name : Create or update PR
67+ if : steps.comparison.outputs.difference == 'true'
68+ uses : gr2m/create-or-update-pull-request-action@v1
69+ env :
70+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
71+ with :
72+ title : " feat: update immutable zkEVM API package"
73+ body : " Update Immutable zkEVM API package"
74+ branch : " chore/update-zkevm-api-${{ steps.date.outputs.date }}"
75+ commit-message : " feat: update immutable zkEVM API package"
0 commit comments