From 441209bf3897bf59dc1b56d448573da911730f40 Mon Sep 17 00:00:00 2001 From: Viktor Podzigun Date: Tue, 30 May 2023 14:20:27 +0200 Subject: [PATCH] Added ci build (#1) --- .github/workflows/ci.yml | 69 ++++++++++++++++++++++++++++++++++++ .github/workflows/ci_bun.yml | 38 ++++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/ci_bun.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3ad7c86 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,69 @@ +name: CI + +on: + push: + paths-ignore: + - "*.md" + branches: [main] + tags: + - "*" + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: "20" + + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: | + ~/.npm + ~/.nvm + ~/work/react-assert/react-assert/node_modules + ~/work/react-assert/react-assert/package-lock.json + key: ${{ runner.os }}-node_modules-cache-v3-${{ hashFiles('package.json') }} + restore-keys: | + ${{ runner.os }}-node_modules-cache-v3- + + - name: Extract Tag Name + run: echo "TAG_NAME=$(echo ${GITHUB_REF##*/})" >> $GITHUB_ENV + if: ${{ startsWith(github.ref, 'refs/tags') }} + + - name: Run tests + run: | + npm i + npm run formatCheck + npx tsc + NODE_V8_COVERAGE=coverage0 npx c8 -r lcovonly --all --src ./src node --experimental-test-coverage ./test/all.mjs + if: ${{ env.TAG_NAME == '' }} + + - name: Report coverage to Coveralls + uses: coverallsapp/github-action@v2 + if: ${{ env.TAG_NAME == '' }} + + - name: Build SNAPSHOT + run: npm pack + if: ${{ env.TAG_NAME == '' }} + + - name: Publish RELEASE + run: | + VERSION="$(echo "$TAG_NAME" | cut -d'v' -f 2)" + echo "Publish a release version=$VERSION for tag $TAG_NAME" + npm --no-git-tag-version --allow-same-version version $VERSION + npm pack + echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc + npm publish react-assert-${VERSION}.tgz + if: ${{ env.TAG_NAME != '' }} + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/ci_bun.yml b/.github/workflows/ci_bun.yml new file mode 100644 index 0000000..24532fb --- /dev/null +++ b/.github/workflows/ci_bun.yml @@ -0,0 +1,38 @@ +name: Bun CI + +on: + push: + paths-ignore: + - "*.md" + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Git checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Bun + uses: oven-sh/setup-bun@v1 + with: + bun-version: "0.5.9" + + - name: Cache Dependencies + uses: actions/cache@v3 + with: + path: | + ~/.bun/install/cache + ~/work/react-assert/react-assert/bun.lockb + key: ${{ runner.os }}-bun-cache-v3-${{ hashFiles('package.json') }} + restore-keys: | + ${{ runner.os }}-bun-cache-v3- + + - name: Run tests + run: | + bun install + bun test