From 4d0c4d22a9a8dae33f6a648a75be3b926bbd3ff0 Mon Sep 17 00:00:00 2001 From: Danny McGee Date: Fri, 10 May 2024 17:22:12 -0400 Subject: [PATCH] GitHub workflow attempt #1 --- .github/workflows/pr-validation.yml | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/pr-validation.yml diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml new file mode 100644 index 00000000..5675226a --- /dev/null +++ b/.github/workflows/pr-validation.yml @@ -0,0 +1,65 @@ +name: PR Validation +on: + pull_request: + branches: + - main + +jobs: + checkout-repo: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Ensure unambiguous `main` + if: github.ref != 'refs/heads/main' + run: | + git remote set-branches origin main + git fetch --depth 1 origin main + git branch main origin/main + + setup-rust: + runs-on: ubuntu-latest + needs: checkout-repo + steps: + - uses: dtolnay/rust-toolchain@stable + with: + components: clippy + - uses: dtolnay/rust-toolchain@nightly + with: + components: rustfmt + - uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-setup-rust-${{ hashFiles('**/Cargo.toml') }} + - name: Set default Rust toolchain + run: rustup default stable + - name: Verify Rust setup + run: rustup show + + setup-node: + runs-on: ubuntu-latest + needs: checkout-repo + steps: + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + - uses: actions/cache@v4 + with: + path: node_modules/ + key: ${{ runner.os }}-setup-node-${{ hashFiles('**/package.json', '**/package-lock.json') }} + - name: Install node dependencies + run: npm ci + + validate-affected: + runs-on: ubuntu-latest + needs: + - setup-rust + - setup-node + steps: + - name: nx affected + run: npx nx affected -t format lint test --configuration ci