You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ci.yml 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. name: CI
  2. env:
  3. CARGO_TERM_COLOR: always
  4. REGISTRY: ghcr.io
  5. on:
  6. push:
  7. branches:
  8. - develop
  9. pull_request:
  10. types: [opened, reopened, edited, synchronize]
  11. branches:
  12. - develop
  13. jobs:
  14. fmt:
  15. name: fmt
  16. runs-on: ubuntu-latest
  17. steps:
  18. - uses: actions/checkout@v3
  19. - name: Install Rust Toolchain
  20. uses: actions-rs/toolchain@v1
  21. with:
  22. toolchain: nightly
  23. components: rustfmt
  24. - name: cargo fmt
  25. run: cargo +nightly fmt -- --check
  26. clippy:
  27. name: clippy
  28. needs: fmt
  29. runs-on: ubuntu-latest
  30. steps:
  31. - uses: actions/checkout@v3
  32. - name: Install Rust Toolchain
  33. uses: actions-rs/toolchain@v1
  34. with:
  35. toolchain: nightly
  36. components: clippy
  37. - name: cargo clippy
  38. run: cargo +nightly clippy --workspace --tests -- -D warnings
  39. tests-common-api:
  40. name: tests-common-api
  41. needs: [clippy, fmt]
  42. runs-on: ubuntu-latest
  43. steps:
  44. - uses: actions/checkout@v3
  45. - name: Install Rust Toolchain
  46. uses: actions-rs/toolchain@v1
  47. with:
  48. toolchain: stable
  49. - name: Run tests for [common-api]
  50. run: cargo test -p common-api --tests --all-features
  51. tests-near:
  52. name: tests-near
  53. needs: [clippy, fmt]
  54. runs-on: ubuntu-latest
  55. steps:
  56. - uses: actions/checkout@v3
  57. - name: Install Rust Toolchain
  58. uses: actions-rs/toolchain@v1
  59. with:
  60. toolchain: stable
  61. target: wasm32-unknown-unknown
  62. - name: Set up ssh access
  63. env:
  64. SSH_AUTH_SOCK: /tmp/ssh_agent.sock
  65. run: |
  66. mkdir -p -m 0700 ~/.ssh
  67. ssh-keyscan github.com >> ~/.ssh/known_hosts
  68. ssh-agent -a $SSH_AUTH_SOCK > /dev/null
  69. ssh-add - <<< "${{ secrets.SMARTCONTRACTS_SSH_PRIVATE_KEY }}"
  70. - name: Run tests for [near-rpc]
  71. env:
  72. SSH_AUTH_SOCK: /tmp/ssh_agent.sock
  73. run: cargo test -p near-rpc --tests
  74. tests-web:
  75. name: tests-web
  76. needs: [clippy, fmt]
  77. runs-on: ubuntu-latest
  78. permissions:
  79. contents: write
  80. packages: read
  81. steps:
  82. - name: Log in to the Container registry
  83. uses: docker/login-action@v2.0.0
  84. with:
  85. registry: ${{ env.REGISTRY }}
  86. username: ${{ github.actor }}
  87. password: ${{ secrets.GITHUB_TOKEN }}
  88. - name: Setup ssh access for a private repositories
  89. uses: webfactory/ssh-agent@v0.5.4
  90. with:
  91. ssh-private-key: |
  92. ${{ secrets.CLIENT_SSH_PRIVATE_KEY }}
  93. ${{ secrets.KEYEXCHANGE_SSH_PRIVATE_KEY }}
  94. ${{ secrets.SMARTCONTRACTS_SSH_PRIVATE_KEY }}
  95. - name: Clone key-exchange-server and deploy
  96. run: |
  97. docker pull ${{ env.REGISTRY }}/relayz-io/key-exchange:latest
  98. docker tag ${{ env.REGISTRY }}/relayz-io/key-exchange:latest key-exchange:latest
  99. git clone git@github.com:Relayz-io/key-exchange-server.git
  100. (cd key-exchange-server && docker compose up -d --no-build)
  101. - name: Clone near-smartcontracts and deploy
  102. run: |
  103. docker pull ${{ env.REGISTRY }}/relayz-io/sandbox:latest
  104. docker tag ${{ env.REGISTRY }}/relayz-io/sandbox:latest sandbox:latest
  105. docker pull ${{ env.REGISTRY }}/relayz-io/sandbox-artifact:latest
  106. docker tag ${{ env.REGISTRY }}/relayz-io/sandbox-artifact:latest sandbox-artifact:latest
  107. docker pull ${{ env.REGISTRY }}/relayz-io/contract-artifact:latest
  108. docker tag ${{ env.REGISTRY }}/relayz-io/contract-artifact:latest contract-artifact:latest
  109. git clone git@github.com:Relayz-io/near-smartcontracts.git
  110. (cd near-smartcontracts && docker compose -f docker-compose.yml -f docker-compose.tests.yml up -d --no-build)
  111. - uses: actions/checkout@v3
  112. - name: Run tests for [web]
  113. run: docker compose up --abort-on-container-exit