Skip to content

refactor(all): clean sonar #142

refactor(all): clean sonar

refactor(all): clean sonar #142

Workflow file for this run

# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
name: Slight Capture CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
PNPM_VERSION: 8.6.11
NODE_VERSION: 18
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GIT_TOKEN }}
- name: Determine Alpha, Beta or Release
id: which_tag
run: |
if [[ ${{ github.ref }} == refs/pull* ]]; then
last_commit_message=$(curl -s "https://api.github.com/repos/AxaFrance/slight-capture/pulls/${{ github.event.number }}/commits" | jq -r '.[-1].commit.message')
else
last_commit_message=$(git log --format=%B -n 1)
fi
echo "last commit message is: $last_commit_message"
# Check if last comment and with "(alpha)", "(beta)" or "(release)"
if [[ $last_commit_message == *alpha* ]]; then
echo "tag=alpha" >> $GITHUB_OUTPUT
fi
if [[ $last_commit_message == *beta* ]]; then
echo "tag=beta" >> $GITHUB_OUTPUT
fi
if [[ $last_commit_message == *release* ]]; then
echo "tag=release" >> $GITHUB_OUTPUT
fi
- name: Bump version and push tag
id: tag_release
if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
uses: mathieudutour/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Bump version and push tag
id: tag_version
if: steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta'
uses: mathieudutour/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
dry_run: true
- name: Compute new version number to publish
id: tag
if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta'
run: |
if [[ '${{ steps.which_tag.outputs.tag }}' == 'release' ]]; then
version=${{ steps.tag_release.outputs.new_version }}
else
version=${{ steps.tag_version.outputs.new_version }}
fi
if [[ '${{ steps.which_tag.outputs.tag }}' = 'release' ]]; then
echo "new_version=$version" >> $GITHUB_OUTPUT
fi
if [[ '${{ steps.which_tag.outputs.tag }}' = 'alpha' ]]; then
echo "new_version=$version-alpha.${{ github.run_number }}" >> $GITHUB_OUTPUT
fi
if [[ '${{ steps.which_tag.outputs.tag }}' = 'beta' ]]; then
echo "new_version=$version-beta.${{ github.run_number }}" >> $GITHUB_OUTPUT
fi
- uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- uses: pnpm/action-setup@v2
name: Install pnpm
with:
version: ${{ env.PNPM_VERSION }}
run_install: false
- name: pnpm ci
run: pnpm i --frozen-lockfile
working-directory: .
- name: Git Configuration
id: gitconfig
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub"
- name: pnpm version ${{ steps.tag.outputs.new_version }}
if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta'
run: |
pnpm version ${{ steps.tag.outputs.new_version }}
#new_version="${{ steps.tag.outputs.new_version }}"
#file="package.json"
# Utilise sed pour mettre à jour la version dans package.json
#sed -i "s/\"version\": \".*\"/\"version\": \"$new_version\"/" "$file"
working-directory: .
- name: Build OpenCV
id: build_open_cv
if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
run: |
mkdir opencv_build
cd opencv_build
# https://docs.opencv.org/3.4/d4/da1/tutorial_js_setup.html
git clone -b 4.x https://github.com/opencv/opencv.git --depth 1
cd opencv
sed -i "s/white_list = makeWhiteList(\[core, imgproc, objdetect, video, dnn, features2d, photo, calib3d\])/white_list = makeWhiteList([core, imgproc, features2d, calib3d])/g" ./platforms/js/opencv_js.config.py
docker run --rm -v $(pwd):/src -u $(id -u):$(id -g) emscripten/emsdk:2.0.10 emcmake python3 ./platforms/js/build_js.py build_js
- name: Copy OpenCV
id: copy_open_cv
if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
run: |
cp -f ./opencv_build/opencv/build_js/bin/opencv.js ./public/
rm -rf ./opencv_build
# - name: git tag v${{ steps.tag.outputs.new_version }} -a
# id: git_tag
# if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
# run: |
# git tag -a v${{ steps.tag_release.outputs.new_version }} -m "Release v${{ steps.tag_release.outputs.new_version }}"
# - name: Git Configuration
# if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
# run: |
# git add .
# git commit -m "[skip ci] Release v${{ steps.tag_release.outputs.new_version }}"
# git push --force --tags --follow-tags
#
#
- name: Commit and push
if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
run: |
git config --global user.name "GitHub"
git config --global user.email "[email protected]"
git add .
git commit -m "[skip ci] Update to version ${{ steps.tag.outputs.new_version }} in package.json"
git tag ${{ steps.tag.outputs.new_version }}
git push --set-upstream origin "HEAD:main" --follow-tags -f
chmod +x ./bin/generate-changelog.sh
./bin/generate-changelog.sh
git add .
git commit -m "[skip ci] Generate changelog to version ${{ steps.tag.outputs.new_version }}"
git push --set-upstream origin "HEAD:main" --follow-tags -f
- id: publish-slight-capture
uses: JS-DevTools/npm-publish@v1
if: (github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release') || steps.which_tag.outputs.tag == 'alpha' || steps.which_tag.outputs.tag == 'beta'
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./package.json
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
if: github.event.pull_request.head.repo.full_name == github.repository && !github.event.pull_request.head.repo.fork
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
with:
args: >
-Dsonar.organization=axaguildev
-Dsonar.projectKey=AxaGuilDEv_slight-capture
-Dsonar.exclusions=**/*.spec.js,**/*.stories.js,Scripts/**,**/*.scss,**/__snapshots__/**,**/*[Tt]ests.cs,**/node_modules/**,**/ClientApp/build/**,**/ClientApp/.storybook/**,**/ClientApp/storybook-static/**,**/obj/**,**/__mocks__/**,**/ClientApp/src/serviceWorker.ts
-Dsonar.javascript.lcov.reportPaths=**/coverage/lcov.info
- name: Create a GitHub release
uses: ncipollo/release-action@v1
if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
with:
tag: ${{ steps.tag_release.outputs.new_tag }}
name: Release ${{ steps.tag_release.outputs.new_tag }}
body: ${{ steps.tag_release.outputs.changelog }}