name: Anchor Programs on: push: branches: ["main"] pull_request: branches: ["main"] env: CARGO_TERM_COLOR: always jobs: setup: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Cache cargo registry uses: actions/cache@v2 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache target uses: actions/cache@v2 with: path: target key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.lock') }} - name: Install dependencies run: | sh -c "$(curl -sSfL https://release.solana.com/stable/install)" cargo install --git https://github.com/coral-xyz/anchor avm --locked --force sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y pkg-config build-essential libudev-dev libssl-dev avm install latest avm use latest shell: bash build: needs: setup runs-on: ubuntu-latest strategy: matrix: dir: [ "basics/account-data/anchor", "basics/checking-accounts/anchor", "basics/close-account/anchor", "basics/counter/anchor", "basics/create-account/anchor", "basics/cross-program-invocation/anchor", "basics/hello-solana/anchor", "basics/pda-rent-payer/anchor", "basics/processing-instructions/anchor", "basics/program-derived-addresses/anchor", "basics/realloc/anchor", "basics/rent/anchor", "basics/repository-layout/anchor", "basics/transfer-sol/anchor", "compression/cnft-vault/anchor", "oracles/pyth/anchor", "tokens/create-token/anchor", "tokens/nft-minter/anchor", "tokens/pda-mint-authority/anchor", "tokens/spl-token-minter/anchor", "tokens/token-2022/basics/anchor", "tokens/transfer-tokens/anchor", ] steps: - name: Checkout code uses: actions/checkout@v3 - name: Cache cargo registry uses: actions/cache@v2 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache target uses: actions/cache@v2 with: path: target key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.lock') }} - name: Set environment variables run: | echo "::add-path::/home/runner/.local/share/solana/install/active_release/bin" echo "::add-path::/home/runner/.cargo/bin" shell: bash - name: Build program working-directory: ${{ matrix.dir }} run: anchor build