diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 1f5c0f4..98833e0 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -13,19 +13,21 @@ jobs: install: if: "!contains(github.event.head_commit.message, 'skip ci')" name: Install - runs-on: ${{ matrix.os }} - strategy: matrix: os: [ubuntu-latest] node: [20] + runs-on: ${{ matrix.os }} + steps: - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} + - name: Checkout Repo uses: actions/checkout@v4 + - name: cache node_modules uses: actions/cache@v4 id: cache @@ -53,25 +55,28 @@ jobs: semantic-version: name: Semantic Release needs: install - runs-on: ${{ matrix.os }} - strategy: matrix: os: [ubuntu-latest] node: [20] + runs-on: ${{ matrix.os }} + steps: - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} + - name: Checkout Repo uses: actions/checkout@v4 + - name: cache node_modules uses: actions/cache@v4 id: cache with: path: node_modules key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }} + - name: Versioning env: GH_TOKEN: ${{ secrets.GH_TOKEN }} @@ -83,24 +88,24 @@ jobs: sonarcloud: name: SonarCloud needs: semantic-version - runs-on: ${{ matrix.os }} - strategy: matrix: os: [ubuntu-latest] node: [20] + runs-on: ${{ matrix.os }} + steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + - name: Download vitest code coverage results uses: actions/download-artifact@v4 with: name: vitest-code-coverage-report path: ./coverage/ - - name: check - run: cd coverage && find . + - name: SonarCloud Scan uses: SonarSource/sonarcloud-github-action@master env: diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml new file mode 100644 index 0000000..fc3ddb2 --- /dev/null +++ b/.github/workflows/feature.yml @@ -0,0 +1,80 @@ +name: Feature + +on: + push: + branches: + - 'feature/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + install: + if: "!contains(github.event.head_commit.message, 'skip ci')" + name: Install + strategy: + matrix: + os: [ubuntu-latest] + node: [20] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: cache node_modules + uses: actions/cache@v4 + id: cache + with: + path: | + node_modules + key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }} + + - name: Install Dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: npm ci + + - name: Lint + run: npm run lint + + - name: Vitest - Test & Coverage + run: npm run coverage + + - name: Archive vitest code coverage results + uses: actions/upload-artifact@v4 + with: + name: vitest-code-coverage-report + path: ./coverage/ + + sonarcloud: + name: SonarCloud + needs: install + strategy: + matrix: + os: [ubuntu-latest] + node: [20] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + - name: Download vitest code coverage results + uses: actions/download-artifact@v4 + with: + name: vitest-code-coverage-report + path: ./coverage/ + + - name: SonarCloud Scan + uses: SonarSource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fb6048e..beb9266 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,19 +13,21 @@ jobs: install: if: "!contains(github.event.head_commit.message, 'skip ci')" name: Install - runs-on: ${{ matrix.os }} - strategy: matrix: os: [ubuntu-latest] node: [20] + runs-on: ${{ matrix.os }} + steps: - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} + - name: Checkout Repo uses: actions/checkout@v4 + - name: cache node_modules uses: actions/cache@v4 id: cache @@ -53,25 +55,28 @@ jobs: semantic-version: name: Semantic Release needs: install - runs-on: ${{ matrix.os }} - strategy: matrix: os: [ubuntu-latest] node: [20] + runs-on: ${{ matrix.os }} + steps: - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} + - name: Checkout Repo uses: actions/checkout@v4 + - name: cache node_modules uses: actions/cache@v4 id: cache with: path: node_modules key: ${{ matrix.os }}-node-v${{ matrix.node }}-deps-${{ hashFiles(format('{0}{1}', github.workspace, '/package-lock.json')) }} + - name: Versioning env: GH_TOKEN: ${{ secrets.GH_TOKEN }} @@ -83,24 +88,24 @@ jobs: sonarcloud: name: SonarCloud needs: semantic-version - runs-on: ${{ matrix.os }} - strategy: matrix: os: [ubuntu-latest] node: [20] + runs-on: ${{ matrix.os }} + steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + - name: Download vitest code coverage results uses: actions/download-artifact@v4 with: name: vitest-code-coverage-report path: ./coverage/ - - name: check - run: cd coverage && find . + - name: SonarCloud Scan uses: SonarSource/sonarcloud-github-action@master env: