anchor.yml 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. name: Anchor Programs
  2. on:
  3. push:
  4. branches: ["main"]
  5. pull_request:
  6. branches: ["main"]
  7. env:
  8. CARGO_TERM_COLOR: always
  9. jobs:
  10. setup:
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Checkout code
  14. uses: actions/checkout@v3
  15. - name: Install dependencies
  16. run: |
  17. sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
  18. sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y pkg-config build-essential libudev-dev libssl-dev
  19. cargo install --git https://github.com/coral-xyz/anchor avm --locked --force
  20. avm install latest
  21. avm use latest
  22. shell: bash
  23. - name: Cache dependencies
  24. uses: actions/cache@v2
  25. with:
  26. path: |
  27. ~/.cargo/bin
  28. ~/.local/share/solana/install
  29. ~/.local/share/solana/install/active_release
  30. ~/.local/share/solana/active_release
  31. key: ${{ runner.os }}-dependencies-${{ hashFiles('**/Cargo.lock') }}
  32. build:
  33. needs: setup
  34. runs-on: ubuntu-latest
  35. strategy:
  36. matrix:
  37. dir:
  38. [
  39. "basics/account-data/anchor",
  40. "basics/checking-accounts/anchor",
  41. "basics/close-account/anchor",
  42. "basics/counter/anchor",
  43. "basics/create-account/anchor",
  44. "basics/cross-program-invocation/anchor",
  45. "basics/hello-solana/anchor",
  46. "basics/pda-rent-payer/anchor",
  47. "basics/processing-instructions/anchor",
  48. "basics/program-derived-addresses/anchor",
  49. "basics/realloc/anchor",
  50. "basics/rent/anchor",
  51. "basics/repository-layout/anchor",
  52. "basics/transfer-sol/anchor",
  53. "compression/cnft-vault/anchor",
  54. "oracles/pyth/anchor",
  55. "tokens/create-token/anchor",
  56. "tokens/nft-minter/anchor",
  57. "tokens/pda-mint-authority/anchor",
  58. "tokens/spl-token-minter/anchor",
  59. "tokens/token-2022/basics/anchor",
  60. "tokens/transfer-tokens/anchor",
  61. ]
  62. steps:
  63. - name: Checkout code
  64. uses: actions/checkout@v3
  65. - name: Load dependencies from cache
  66. uses: actions/cache@v2
  67. with:
  68. path: |
  69. ~/.cargo/bin
  70. ~/.local/share/solana/install
  71. ~/.local/share/solana/active_release
  72. key: ${{ runner.os }}-dependencies-${{ hashFiles('**/Cargo.lock') }}
  73. - name: Add dependencies to PATH
  74. run: |
  75. echo "${HOME}/.cargo/bin" >> $GITHUB_PATH
  76. echo "${HOME}/.local/share/solana/active_release" >> $GITHUB_PATH
  77. echo "${HOME}/.local/share/solana/install/active_release" >> $GITHUB_PATH
  78. echo "${HOME}/.local/share/solana/install" >> $GITHUB_PATH
  79. - name: Build program
  80. working-directory: ${{ matrix.dir }}
  81. run: anchor build