From f6a56419c3abd66f5e90b00c4723e3d81667c67d Mon Sep 17 00:00:00 2001 From: Imaarov Date: Wed, 1 May 2024 14:18:35 +0330 Subject: [PATCH] add some workflow --- .github/dependabot.yml | 26 +++++++++++++ .github/workflows/check-dist.yml | 67 ++++++++++++++++++++++++++++++++ .github/workflows/linter.yml | 49 +++++++++++++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/check-dist.yml create mode 100644 .github/workflows/linter.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..9be9f02 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,26 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + groups: + actions-minor: + update-types: + - minor + - patch + + - package-ecosystem: npm + directory: / + schedule: + interval: weekly + groups: + npm-development: + dependency-type: development + update-types: + - minor + - patch + npm-production: + dependency-type: production + update-types: + - patch \ No newline at end of file diff --git a/.github/workflows/check-dist.yml b/.github/workflows/check-dist.yml new file mode 100644 index 0000000..8c4a098 --- /dev/null +++ b/.github/workflows/check-dist.yml @@ -0,0 +1,67 @@ +# In TypeScript actions, `dist/` is a special directory. When you reference +# an action with the `uses:` property, `dist/index.js` is the code that will be +# run. For this project, the `dist/index.js` file is transpiled from other +# source files. This workflow ensures the `dist/` directory contains the +# expected transpiled code. +# +# If this workflow is run from a feature branch, it will act as an additional CI +# check and fail if the checked-in `dist/` directory does not match what is +# expected from the build. +name: Check Transpiled JavaScript + +on: + pull_request: + branches: + - main + push: + branches: + - main + +permissions: + contents: read + +jobs: + check-dist: + name: Check dist/ + runs-on: ubuntu-latest + + steps: + - name: Checkout + id: checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + id: setup-node + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + cache: npm + + - name: Install Dependencies + id: install + run: npm ci + + - name: Build dist/ Directory + id: build + run: npm run bundle + + # This will fail the workflow if the `dist/` directory is different than + # expected. + - name: Compare Directories + id: diff + run: | + if [ "$(git diff --ignore-space-at-eol --text dist/ | wc -l)" -gt "0" ]; then + echo "Detected uncommitted changes after build. See status below:" + git diff --ignore-space-at-eol --text dist/ + exit 1 + fi + + # If `dist/` was different than expected, upload the expected version as a + # workflow artifact. + - if: ${{ failure() && steps.diff.outcome == 'failure' }} + name: Upload Artifact + id: upload + uses: actions/upload-artifact@v4 + with: + name: dist + path: dist/ diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 0000000..7b72f4b --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,49 @@ +name: Lint Codebase + +on: + pull_request: + branches: + - main + push: + branches: + - main + +permissions: + contents: read + packages: read + statuses: write + +jobs: + lint: + name: Lint Codebase + runs-on: ubuntu-latest + + steps: + - name: Checkout + id: checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js + id: setup-node + uses: actions/setup-node@v4 + with: + node-version-file: .node-version + cache: npm + + - name: Install Dependencies + id: install + run: npm ci + + - name: Lint Codebase + id: super-linter + uses: super-linter/super-linter/slim@v6 + env: + DEFAULT_BRANCH: main + FILTER_REGEX_EXCLUDE: dist/**/* + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TYPESCRIPT_DEFAULT_STYLE: prettier + VALIDATE_ALL_CODEBASE: true + VALIDATE_JAVASCRIPT_STANDARD: false + VALIDATE_JSCPD: false