diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..65d452dbcc --- /dev/null +++ b/.travis.yml @@ -0,0 +1,182 @@ +language: node_js +dist: jammy +cache: + npm: false +if: type NOT IN (pull_request) +env: + global: + - PR_TITLE=$(curl https://github.com/${TRAVIS_REPO_SLUG}/pull/${TRAVIS_PULL_REQUEST} 2> /dev/null | grep "title" | head -1) +stages: + - Prebuild + - Build + - Docs + - Test + - Screenshots - Create + - Screenshots - Upload + - Deploy +jobs: + include: + - name: 'Lint' + stage: 'Prebuild' + script: yarn lint + if: commit_message =~ /^((?!\[only argos\]).)*$/ # skipped if commit message contains "[only argos]" + - name: 'Generate Sprite and Palette' + stage: 'Prebuild' + script: yarn makeSpriteAndPalette + workspaces: + create: + name: sprite-palette-binaries + paths: + - ./react/Icon/icons-sprite.js + - ./react/palette.js + - name: 'Build JS' + stage: 'Build' + script: + - yarn build + workspaces: + use: + - sprite-palette-binaries + create: + name: js-binaries + paths: + - ./transpiled + - name: 'Build CSS' + stage: 'Build' + script: + - yarn build:css:all + workspaces: + create: + name: css-binaries + paths: + - ./dist + - name: 'Build docs' + stage: 'Docs' + script: + - yarn build:doc:react + - yarn build:doc:kss + workspaces: + use: + - sprite-palette-binaries + - js-binaries + - css-binaries + create: + name: docs-binaries + paths: + - ./build + - name: 'Tests without snapshots' + stage: 'Test' + script: + - yarn test:noSnapshots + workspaces: + use: + - sprite-palette-binaries + - js-binaries + - css-binaries + if: commit_message =~ /^((?!\[only argos\]).)*$/ # skipped if commit message contains "[only argos]" + - name: 'Tests snapshots' + stage: 'Test' + script: + - yarn test:snapshots + workspaces: + use: + - sprite-palette-binaries + - js-binaries + - css-binaries + if: commit_message =~ /^((?!\[only argos\]).)*$/ # skipped if commit message contains "[only argos]" + - name: 'Bundlemon' + stage: 'Test' + script: + - yarn bundlemon + workspaces: + use: + - sprite-palette-binaries + - js-binaries + - css-binaries + if: commit_message =~ /^((?!\[only argos\]).)*$/ # skipped if commit message contains "[only argos]" + # - name: '[Argos] Create desktop screenshots' + # stage: 'Screenshots - Create' + # script: | + # if [[ "${PR_TITLE}" != *"[skip argos]"* ]]; then + # mkdir ./screenshots + # yarn add puppeteer@"21.11.0" --dev --exact --no-lockfile + # yarn screenshots --mode react --viewport desktop --screenshot-dir ./screenshots/reactDesktop + # fi + # workspaces: + # use: + # - sprite-palette-binaries + # - js-binaries + # - css-binaries + # - docs-binaries + # create: + # name: screenshots-desktop-binaries + # paths: + # - ./screenshots + # - name: '[Argos] Create mobile screenshots' + # stage: 'Screenshots - Create' + # script: | + # if [[ "${PR_TITLE}" != *"[skip argos]"* ]]; then + # mkdir ./screenshots + # yarn add puppeteer@"21.11.0" --dev --exact --no-lockfile + # yarn screenshots --mode react --viewport 300x600 --screenshot-dir ./screenshots/reactMobile + # fi + # workspaces: + # use: + # - sprite-palette-binaries + # - js-binaries + # - css-binaries + # - docs-binaries + # create: + # name: screenshots-mobile-binaries + # paths: + # - ./screenshots + # - name: '[Argos] Create kss screenshots' + # stage: 'Screenshots - Create' + # script: | + # if [[ "${PR_TITLE}" != *"[skip argos]"* ]]; then + # mkdir ./screenshots + # yarn add puppeteer@"21.11.0" --dev --exact --no-lockfile + # yarn screenshots --mode kss --screenshot-dir ./screenshots/kss + # fi + # workspaces: + # use: + # - sprite-palette-binaries + # - js-binaries + # - css-binaries + # - docs-binaries + # create: + # name: screenshots-kss-binaries + # paths: + # - ./screenshots + # - name: '[Argos] Upload all screenshots' + # stage: 'Screenshots - Upload' + # script: | + # if [[ "${PR_TITLE}" != *"[skip argos]"* ]]; then + # yarn argos:upload --parallel screenshots/reactDesktop/ --token $ARGOS_TOKEN --parallel-total 3 --parallel-nonce $TRAVIS_BUILD_ID --ignore '' + # yarn argos:upload --parallel screenshots/reactMobile/ --token $ARGOS_TOKEN --parallel-total 3 --parallel-nonce $TRAVIS_BUILD_ID --ignore '' + # yarn argos:upload --parallel screenshots/kss/ --token $ARGOS_TOKEN --parallel-total 3 --parallel-nonce $TRAVIS_BUILD_ID --ignore '' + # fi + # workspaces: + # use: + # - sprite-palette-binaries + # - js-binaries + # - css-binaries + # - docs-binaries + # - screenshots-desktop-binaries + # - screenshots-mobile-binaries + # - screenshots-kss-binaries + - name: 'Deploy' + stage: 'Deploy' + script: 'true' + if: commit_message =~ /^((?!\[only argos\]).)*$/ # skipped if commit message contains "[only argos]" + workspaces: + use: + - sprite-palette-binaries + - js-binaries + - css-binaries + - docs-binaries + deploy: + provider: script + skip-cleanup: true + script: yarn deploy:doc -- --username cozycloud --email contact@cozycloud.cc --repo https://cozy-bot:$GH_TOKEN@github.com/cozy/cozy-ui.git && yarn semantic-release + on: + branch: master diff --git a/package.json b/package.json index 07ee105db8..646dd7c497 100644 --- a/package.json +++ b/package.json @@ -137,7 +137,6 @@ "prettier": "2.6.0", "pretty": "2.0.0", "prop-types": "15.7.2", - "puppeteer": "21.11.0", "react": "16.12.0", "react-dom": "16.12.0", "react-hot-loader": "^4.3.11",