anchor.yml 2.9 KB

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