From bf82cfa74f8ba549939be1d27d222c119b6778ce Mon Sep 17 00:00:00 2001 From: Stephen Kilbourn Date: Mon, 30 Dec 2024 10:13:25 -0700 Subject: [PATCH] initial github ci action --- .github/workflows/CI.yml | 80 ++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/CI.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..62e41d8 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,80 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + strategy: + matrix: + node-version: [20.x, 22.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + name: Build with ${{ matrix.node-version }} + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: npm + - run: npm ci + - run: npm run build + + test: + strategy: + matrix: + node-version: [20.x] + + name: Run all tests + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: npm + - run: yarn install + + - name: Lint + run: yarn lint + + - name: Type checking + run: yarn type-check + + - name: Run unit tests + run: yarn test + + + name: GitHub PR synchronize with Crowdin + runs-on: ubuntu-latest + + needs: [build, test] + if: github.event_name == 'pull_request' + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} # Crowdin Actions needs to push commits to the PR branch, checkout HEAD commit instead of merge commit + fetch-depth: 0 + + - name: crowdin action + uses: crowdin/github-action@v2 + with: + upload_sources: true + upload_translations: true + download_translations: true + create_pull_request: false + localization_branch_name: ${{ github.head_ref || github.ref_name }} # explanation here: https://stackoverflow.com/a/71158878 + commit_message: 'chore: new Crowdin translations by GitHub Action' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }} + CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} \ No newline at end of file diff --git a/package.json b/package.json index 16b44e7..d039cbe 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "lint": "next lint --fix", "format": "prettier --write .", "prepare": "husky", - "test": "vitest" + "test": "vitest", + "type-check": "tsc --noEmit" }, "dependencies": { "@ant-design/nextjs-registry": "^1.0.2",