diff --git a/.github/workflows/test-csd.yml b/.github/workflows/test-csd.yml new file mode 100644 index 0000000..cd45087 --- /dev/null +++ b/.github/workflows/test-csd.yml @@ -0,0 +1,55 @@ +name: Test Templates + +on: + push: + branches: + - main + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + node: [ 18, 20, 22 ] + pm: [ npm, pnpm, yarn ] + template: [ react-vite-tailwind ] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Configure Git identity + run: | + git config --global user.email "ci-bot@example.com" + git config --global user.name "CI Bot" + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + + - name: Install package manager (if needed) + run: | + case ${{ matrix.pm }} in + npm) echo "Using npm";; + pnpm) npm install -g pnpm;; + yarn) npm install -g yarn;; + esac + + - name: Create and Build using create-solana-dapp + run: | + TEMP_DIR=$(mktemp -d) + cd "$TEMP_DIR" + + BRANCH=${GITHUB_REF#refs/heads/} + + case ${{ matrix.pm }} in + npm) npx create-solana-dapp@latest --template gh:solana-developers/template-${{ matrix.template }}#${BRANCH} test-${{ matrix.template }} ;; + pnpm) pnpx create-solana-dapp@latest --template gh:solana-developers/template-${{ matrix.template }}#${BRANCH} test-${{ matrix.template }} ;; + yarn) yarn create solana-dapp --template gh:solana-developers/template-${{ matrix.template }}#${BRANCH} test-${{ matrix.template }} ;; + esac + + cd test-${{ matrix.template }} + ${{ matrix.pm }} install + ${{ matrix.pm }} run build