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: Install dependencies run: | sh -c "$(curl -sSfL https://release.solana.com/stable/install)" sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y pkg-config build-essential libudev-dev libssl-dev cargo install --git https://github.com/coral-xyz/anchor avm --locked --force avm install latest avm use latest shell: bash - name: Cache dependencies uses: actions/cache@v2 with: path: | ~/.cargo/bin ~/.local/share/solana/install ~/.local/share/solana/install/active_release ~/.local/share/solana/active_release key: ${{ runner.os }}-dependencies-${{ hashFiles('**/Cargo.lock') }} 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: Load dependencies from cache uses: actions/cache@v2 with: path: | ~/.cargo/bin ~/.local/share/solana/install ~/.local/share/solana/active_release key: ${{ runner.os }}-dependencies-${{ hashFiles('**/Cargo.lock') }} - name: Add dependencies to PATH run: | echo "${HOME}/.cargo/bin" >> $GITHUB_PATH echo "${HOME}/.local/share/solana/active_release" >> $GITHUB_PATH echo "${HOME}/.local/share/solana/install/active_release" >> $GITHUB_PATH echo "${HOME}/.local/share/solana/install" >> $GITHUB_PATH - name: Build program working-directory: ${{ matrix.dir }} run: anchor build