diff --git a/.github/workflows/pull-request-feature-gate.yml b/.github/workflows/pull-request-feature-gate.yml new file mode 100644 index 00000000000..dbe807348aa --- /dev/null +++ b/.github/workflows/pull-request-feature-gate.yml @@ -0,0 +1,60 @@ +name: Feature Gate Pull Request + +on: + pull_request: + paths: + - 'feature-gate/**' + - 'ci/*-version.sh' + - '.github/workflows/pull-request-feature-gate.yml' + push: + branches: [master] + paths: + - 'feature-gate/**' + - 'ci/*-version.sh' + - '.github/workflows/pull-request-feature-gate.yml' + +jobs: + cargo-test-sbf: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set env vars + run: | + source ci/rust-version.sh + echo "RUST_STABLE=$rust_stable" >> $GITHUB_ENV + source ci/solana-version.sh + echo "SOLANA_VERSION=$solana_version" >> $GITHUB_ENV + + - uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ env.RUST_STABLE }} + override: true + profile: minimal + + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ env.RUST_STABLE}} + + - uses: actions/cache@v2 + with: + path: | + ~/.cargo/bin/rustfilt + key: cargo-sbf-bins-${{ runner.os }} + + - uses: actions/cache@v2 + with: + path: ~/.cache/solana + key: solana-${{ env.SOLANA_VERSION }} + + - name: Install dependencies + run: | + ./ci/install-build-deps.sh + ./ci/install-program-deps.sh + echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH + + - name: Build and test + run: ./ci/cargo-test-sbf.sh feature-gate