Skip to content

fix(ci): try add tag (release) #92

fix(ci): try add tag (release)

fix(ci): try add tag (release) #92

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.5.1
NODE_VERSION: 18
jobs:
skip_ci:
runs-on: ubuntu-latest
outputs:
canSkip: ${{ steps.check.outputs.canSkip }}
steps:
- id: check
uses: Legorooj/skip-ci@main
build:
runs-on: ubuntu-latest
if: needs.skip_ci.outputs.canSkip != 'true' && !github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v2
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 }} --no-git-tag-version
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 https://github.com/opencv/opencv.git
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: Commit Release ${{ steps.tag_release.outputs.new_version }}
uses: stefanzweifel/git-auto-commit-action@v4
if: github.ref == 'refs/heads/main' && steps.which_tag.outputs.tag == 'release'
with:
commit_message: "[skip ci] Release v${{ steps.tag_release.outputs.new_version }}"
commit_user_name: GitHub
commit_user_email: [email protected]
commit_author: GitHub <[email protected]>
tagging_message: 'v${{ steps.tag.outputs.new_version }}'
push_options: '--force --tags --follow-tags'
- 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_react-oidc
# -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 }}