فهرست منبع

Add main.yml workflow

Loris Leiva 1 سال پیش
والد
کامیت
45ec9ec0d0
1فایلهای تغییر یافته به همراه109 افزوده شده و 0 حذف شده
  1. 109 0
      .github/main.yml

+ 109 - 0
.github/main.yml

@@ -0,0 +1,109 @@
+name: Main
+
+on:
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]
+
+env:
+  NODE_VERSION: 18
+  SOLANA_VERSION: 1.18.12
+
+jobs:
+  lint:
+    name: Check styling
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v4
+
+      - name: Setup pnpm
+        uses: pnpm/action-setup@v3
+
+      - name: Setup Node.js
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ env.NODE_VERSION }}
+          cache: 'pnpm'
+
+      - name: Install dependencies
+        run: pnpm install --frozen-lockfile
+
+      - name: Check linting
+        run: pnpm run lint
+
+  tests:
+    name: Test
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v4
+
+      - name: Install Solana
+        uses: metaplex-foundation/actions/install-solana@v1
+        with:
+          version: ${{ env.SOLANA_VERSION }}
+
+      - name: Install pnpm
+        uses: pnpm/action-setup@v3
+
+      - name: Setup Node.js ${{ env.NODE_VERSION }}
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ env.NODE_VERSION }}
+          cache: 'pnpm'
+
+      - name: Install dependencies
+        run: pnpm install --frozen-lockfile
+
+      - name: Build and run tests
+        run: pnpm run test
+
+      - name: Ensure working directory is clean
+        run: test -z "$(git status --porcelain)"
+
+  # release:
+  #   name: Release
+  #   runs-on: ubuntu-latest
+  #   if: github.event_name == 'push'
+  #   needs: [lint, tests]
+  #   outputs:
+  #     published: ${{ steps.changesets.outputs.published }}
+  #   steps:
+  #     - name: Checkout Repo
+  #       uses: actions/checkout@v4
+
+  #     - name: Setup pnpm
+  #       uses: pnpm/action-setup@v3
+
+  #     - name: Setup Node.js
+  #       uses: actions/setup-node@v4
+  #       with:
+  #         node-version: ${{ env.NODE_VERSION }}
+  #         cache: 'pnpm'
+
+  #     - name: Install Dependencies
+  #       run: pnpm install --frozen-lockfile
+
+  #     - name: Get Build Version
+  #       run: |
+  #         pnpm packages:version
+  #         echo "BUILD_VERSION=$(./configs/get-latest-version.sh)" | tee $GITHUB_ENV
+  #         git reset --hard && git clean -df
+  #       env:
+  #         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+  #     - name: Create Release Pull Request or Publish
+  #       id: changesets
+  #       uses: lorisleiva/changesets-action@main
+  #       with:
+  #         commit: 'Release packages'
+  #         title: 'Release packages'
+  #         publish: pnpm packages:publish
+  #         createGithubReleases: 'aggregate'
+  #         githubReleaseName: v${{ env.BUILD_VERSION }}
+  #         githubTagName: v${{ env.BUILD_VERSION }}
+  #       env:
+  #         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+  #         NPM_TOKEN: ${{ secrets.NPM_TOKEN }}