|
6 | 6 | - feat/add-post-release-workflow |
7 | 7 | tags: |
8 | 8 | - "*@*.*.*" |
9 | | - workflow_dispatch: |
10 | 9 |
|
11 | 10 | jobs: |
12 | 11 | extract-project: |
13 | 12 | runs-on: ubuntu-latest |
14 | 13 | steps: |
15 | 14 | - name: Extract Project Name |
16 | | - id: extract |
| 15 | + id: extract-project-name |
| 16 | + shell: bash |
17 | 17 | run: | |
18 | 18 | TAG_NAME=${{ github.ref_name }} |
19 | | - PROJECT_NAME=$(echo "$TAG_NAME" | sed -E 's/@[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?//') |
20 | | - echo "project=$PROJECT_NAME" >> "$GITHUB_ENV" |
21 | | - echo "::set-output name=project::$PROJECT_NAME" |
| 19 | + if [[ "$TAG_NAME" =~ ^(.+)@[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$ ]]; then |
| 20 | + PROJECT_NAME=${BASH_REMATCH[1]} |
| 21 | + else |
| 22 | + PROJECT_NAME="" |
| 23 | + fi |
| 24 | + echo "project=$PROJECT_NAME" >> "$GITHUB_OUTPUT" |
| 25 | + echo "Extracted project '$PROJECT_NAME' from '$TAG_NAME'" |
22 | 26 |
|
23 | | - - name: Show Extracted Project |
24 | | - run: | |
25 | | - echo "Extracted project: ${{ env.project }}" |
26 | | -
|
27 | | - use-project: |
| 27 | + upload-test-coverage: |
28 | 28 | runs-on: ubuntu-latest |
29 | 29 | needs: extract-project |
| 30 | + if: ${{ needs.extract-project.outputs.project != '' }} |
| 31 | + env: |
| 32 | + PROJECT: ${{ needs.extract-project.outputs.project }} |
30 | 33 | steps: |
31 | | - - name: Use Extracted Project Name |
32 | | - run: echo "Project from tag is ${{ needs.extract-project.outputs.project }}" |
| 34 | + - name: Checkout |
| 35 | + uses: actions/checkout@v4 |
| 36 | + with: |
| 37 | + fetch-tags: 'true' |
| 38 | + fetch-depth: '0' |
| 39 | + |
| 40 | + - name: Enable Corepack |
| 41 | + run: corepack enable |
| 42 | + |
| 43 | + - name: Install Node.js |
| 44 | + uses: actions/setup-node@v4 |
| 45 | + with: |
| 46 | + node-version: 20 |
| 47 | + registry-url: 'https://registry.npmjs.org/' |
| 48 | + cache: 'yarn' |
| 49 | + cache-dependency-path: 'yarn.lock' |
| 50 | + |
| 51 | + - name: Install dependencies |
| 52 | + run: yarn install --immutable |
| 53 | + |
| 54 | + - name: Run tests with coverage |
| 55 | + run: npx nx run ${{ env.PROJECT }}:test --coverage |
| 56 | + |
| 57 | + - name: Upload ${{ env.PROJECT }} coverage reports to Codecov |
| 58 | + uses: codecov/codecov-action@13ce06bfc6bbe3ecf90edbbf1bc32fe5978ca1d3 |
| 59 | + with: |
| 60 | + token: ${{ secrets.CODECOV_TOKEN }} |
| 61 | + directory: ./coverage/packages/${{ env.PROJECT }} |
| 62 | + flags: hooks,${{ env.PROJECT }} |
0 commit comments