Create manual.yml #35
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Node.js CI | |
on: | |
push: | |
branches: ['main', 'develop'] | |
pull_request: | |
branches: ['main', 'develop'] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [18.x, 20.x, 22.x] | |
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ | |
steps: | |
# Checkout the code | |
- uses: actions/checkout@v4 | |
# Set up | |
- uses: pnpm/action-setup@v4 | |
name: Install pnpm | |
with: | |
version: 9 | |
run_install: false | |
# Set up Node.js | |
- name: Set up Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' # Cache pnpm instead of npm | |
# Install pnpm | |
- name: Install pnpm | |
run: corepack enable pnpm | |
- name: Debug Node and pnpm | |
run: | | |
node --version | |
pnpm --version | |
# Install dependencies using pnpm | |
- name: Install Dependencies | |
run: pnpm install --frozen-lockfile | |
# Run build (Nx should handle the build, can be adjusted if specific commands are needed) | |
- name: Build the project | |
run: pnpm run build | |
# Run tests using Nx (adjust the test command if needed for Nx-specific testing) | |
# - name: Run Tests | |
# run: pnpm run test | |
# Optionally, you can also run linting if set up in Nx | |
- name: Run Lint | |
run: pnpm run lint | |
# Format the code | |
- name: Format Code | |
run: pnpm format | |
# Commit and push changes if any files were formatted | |
- name: Commit and Push Changes | |
run: | | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |
git add . | |
if ! git diff-index --quiet HEAD; then | |
git commit -m "Auto format code" | |
git push | |
fi | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |