jobs: include: - stage: test language: python name: Test cli python: - '3.6' before_install: - cd cli install: - pip install -r requirements.txt -r test-requirements.txt script: - export PYTHONPATH='.' - python -m unittest discover - stage: test language: python name: Test backend python: - '3.6' before_install: - cd containers/backend install: - pip install -r requirements.txt script: - python manage.py test - stage: test language: node_js name: Test JavaScript packages node_js: - lts/* addons: chrome: stable cache: yarn: true before_install: - curl -o- -L https://yarnpkg.com/install.sh | bash - export PATH=$HOME/.yarn/bin:$PATH install: - yarn install script: - yarn test - stage: test language: node_js name: Test mobile app node_js: - lts/* cache: yarn: true before_install: - curl -o- -L https://yarnpkg.com/install.sh | bash - export PATH=$HOME/.yarn/bin:$PATH - cd mobile install: - yarn install script: - yarn test - stage: test language: generic name: Test containers services: - docker before_script: - cd containers script: - "./test" - stage: deploy language: python name: Deploy cli python: - '3.6' script: skip before_deploy: cd cli deploy: provider: pypi user: guillaumevincent password: secure: AOCdqmMdtzmxZXnnMM4ToA80y1PftTVoPsFi7D9RglfneRruRocfI+HQ1Y2m3wUkdGEKVrzkHudiOVMLpeuiMerz9JzQNX/MoujjTvq0h24pnXC+Y2JLNgqxQNuKttgBYP9yMhdgo0Si25KqRLTbmGNZLVnN1hXKV206alNmRWqsZeI/Yxje2FDgRnVTsAtXM+R2g/SvM5r/zVnFiogT/gbQ1Voz+kUo7c15o3Sp3D9+WL38P9Sk3tIVl7RA8o1yd7actDVezPhQPddSu+o+3poxUfrX9LtnibJiuWvqBRdQ2Pjwc7ZSjNJ/zPXntCu8hvdEVzCAXbVFfkhsk1xEDGrEne1hyRJuRX3F9o+SgkuKz53mSg1Wxw7tK6fmnyNG+EMU+oeIKGzNd4Ta/Dk9MzmrymeQgFsZSSFIlwi0ecJ7N+3f0UYTlMR788Q7JGXLsqHfY473rI1M5cpC24l88Pibsdjzf66sanlsZtzHN/51CZzuLLHwTt714CV2bVsffdp3UqaJ+pbhdLXYtrLColOg5Ua3el+t999pVr0r/V/gSqRKKVZqgbUwd9ajYTqYXDDt0+/+9c7ynhfH4hMLsafAZNhf74KBIbL7C30A/DfptiHlBP/5TWvOpzc+AyxWt8v1nnrEK/1vAGLGAaYkXKqmazb/9KlxkKDqDMC9ZQc= on: tags: true branch: master - stage: deploy language: node_js name: Deploy lesspass node_js: - lts/* script: skip before_deploy: cd packages/lesspass deploy: provider: npm email: guillaume@oslab.fr api_key: secure: rD1rs7QEA7IX8erpnJStx2AKhS8DpzvFxCA/jw/t9cx40Hk29jTVq1h22Sr6Gitm169cH9/sFzZEqera64w/sC7tsLimf/3aQhx8ia0y8taNxVw6nQTRYhvJazhOEnPEN0hZV8cW12yAUWNjjU19xokJsmbaT9ICVy7LNoRhRubpPO58ICkn8A6fBaz49i+Q/WXAdzdpH5nvu0ffz5Vm2QXD5BC6MZcBn3NQX8sDftUK1lqUNuSJIppTR6cUuZW+RluuiajssxYT7LX5BUgW4vTgf1CcPJ5AlI2JLeytphOc7xEwJBk72vO9eLXQZ8CiSwHCYcz9QGDbPke1xfmlqBwjN/FaCLSk7fi1zEMLbDy0K8b26KUqlOaulPX2hjWsBzfX1TykrusqDxYZ72tIWe2GHPsLGQPEkmhUHlUSPaIMDkYIPydLcvLwS8YObThShCvG6AVmSR3v/25SM3pfb98AtLuKLieTq5kQFOog1HRqLjDZ4CdXFhxzLfoQb9+tXYC/cKsyD4GqVL6CQlfERhKUDMwSu284/6g6pqdVvZ7rzE7oiXgyO9PM+T9vA/j4UeNTahANbSx28AQrWa3n5EQHNOHMSAxv4rnpyDYUTUBrlTKYAUTHSvenKgBr9BKnGjJ4Oa+1jMpjgzw+BJT8smhJTVSQr5XFQoXiAUK2nzg= on: tags: true branch: master - stage: deploy language: node_js name: Deploy lesspass-crypto node_js: - lts/* script: skip before_deploy: cd packages/lesspass-crypto deploy: provider: npm email: guillaume@oslab.fr api_key: secure: rD1rs7QEA7IX8erpnJStx2AKhS8DpzvFxCA/jw/t9cx40Hk29jTVq1h22Sr6Gitm169cH9/sFzZEqera64w/sC7tsLimf/3aQhx8ia0y8taNxVw6nQTRYhvJazhOEnPEN0hZV8cW12yAUWNjjU19xokJsmbaT9ICVy7LNoRhRubpPO58ICkn8A6fBaz49i+Q/WXAdzdpH5nvu0ffz5Vm2QXD5BC6MZcBn3NQX8sDftUK1lqUNuSJIppTR6cUuZW+RluuiajssxYT7LX5BUgW4vTgf1CcPJ5AlI2JLeytphOc7xEwJBk72vO9eLXQZ8CiSwHCYcz9QGDbPke1xfmlqBwjN/FaCLSk7fi1zEMLbDy0K8b26KUqlOaulPX2hjWsBzfX1TykrusqDxYZ72tIWe2GHPsLGQPEkmhUHlUSPaIMDkYIPydLcvLwS8YObThShCvG6AVmSR3v/25SM3pfb98AtLuKLieTq5kQFOog1HRqLjDZ4CdXFhxzLfoQb9+tXYC/cKsyD4GqVL6CQlfERhKUDMwSu284/6g6pqdVvZ7rzE7oiXgyO9PM+T9vA/j4UeNTahANbSx28AQrWa3n5EQHNOHMSAxv4rnpyDYUTUBrlTKYAUTHSvenKgBr9BKnGjJ4Oa+1jMpjgzw+BJT8smhJTVSQr5XFQoXiAUK2nzg= on: tags: true branch: master - stage: deploy language: node_js name: Deploy lesspass-entropy node_js: - lts/* script: skip before_deploy: cd packages/lesspass-entropy deploy: provider: npm email: guillaume@oslab.fr api_key: secure: rD1rs7QEA7IX8erpnJStx2AKhS8DpzvFxCA/jw/t9cx40Hk29jTVq1h22Sr6Gitm169cH9/sFzZEqera64w/sC7tsLimf/3aQhx8ia0y8taNxVw6nQTRYhvJazhOEnPEN0hZV8cW12yAUWNjjU19xokJsmbaT9ICVy7LNoRhRubpPO58ICkn8A6fBaz49i+Q/WXAdzdpH5nvu0ffz5Vm2QXD5BC6MZcBn3NQX8sDftUK1lqUNuSJIppTR6cUuZW+RluuiajssxYT7LX5BUgW4vTgf1CcPJ5AlI2JLeytphOc7xEwJBk72vO9eLXQZ8CiSwHCYcz9QGDbPke1xfmlqBwjN/FaCLSk7fi1zEMLbDy0K8b26KUqlOaulPX2hjWsBzfX1TykrusqDxYZ72tIWe2GHPsLGQPEkmhUHlUSPaIMDkYIPydLcvLwS8YObThShCvG6AVmSR3v/25SM3pfb98AtLuKLieTq5kQFOog1HRqLjDZ4CdXFhxzLfoQb9+tXYC/cKsyD4GqVL6CQlfERhKUDMwSu284/6g6pqdVvZ7rzE7oiXgyO9PM+T9vA/j4UeNTahANbSx28AQrWa3n5EQHNOHMSAxv4rnpyDYUTUBrlTKYAUTHSvenKgBr9BKnGjJ4Oa+1jMpjgzw+BJT8smhJTVSQr5XFQoXiAUK2nzg= on: tags: true branch: master - stage: deploy language: node_js name: Deploy lesspass-fingerprint node_js: - lts/* script: skip before_deploy: cd packages/lesspass-fingerprint deploy: provider: npm email: guillaume@oslab.fr api_key: secure: rD1rs7QEA7IX8erpnJStx2AKhS8DpzvFxCA/jw/t9cx40Hk29jTVq1h22Sr6Gitm169cH9/sFzZEqera64w/sC7tsLimf/3aQhx8ia0y8taNxVw6nQTRYhvJazhOEnPEN0hZV8cW12yAUWNjjU19xokJsmbaT9ICVy7LNoRhRubpPO58ICkn8A6fBaz49i+Q/WXAdzdpH5nvu0ffz5Vm2QXD5BC6MZcBn3NQX8sDftUK1lqUNuSJIppTR6cUuZW+RluuiajssxYT7LX5BUgW4vTgf1CcPJ5AlI2JLeytphOc7xEwJBk72vO9eLXQZ8CiSwHCYcz9QGDbPke1xfmlqBwjN/FaCLSk7fi1zEMLbDy0K8b26KUqlOaulPX2hjWsBzfX1TykrusqDxYZ72tIWe2GHPsLGQPEkmhUHlUSPaIMDkYIPydLcvLwS8YObThShCvG6AVmSR3v/25SM3pfb98AtLuKLieTq5kQFOog1HRqLjDZ4CdXFhxzLfoQb9+tXYC/cKsyD4GqVL6CQlfERhKUDMwSu284/6g6pqdVvZ7rzE7oiXgyO9PM+T9vA/j4UeNTahANbSx28AQrWa3n5EQHNOHMSAxv4rnpyDYUTUBrlTKYAUTHSvenKgBr9BKnGjJ4Oa+1jMpjgzw+BJT8smhJTVSQr5XFQoXiAUK2nzg= on: tags: true branch: master - stage: deploy language: node_js name: Deploy lesspass-pure node_js: - lts/* script: skip before_deploy: cd packages/lesspass-pure deploy: provider: npm email: guillaume@oslab.fr api_key: secure: rD1rs7QEA7IX8erpnJStx2AKhS8DpzvFxCA/jw/t9cx40Hk29jTVq1h22Sr6Gitm169cH9/sFzZEqera64w/sC7tsLimf/3aQhx8ia0y8taNxVw6nQTRYhvJazhOEnPEN0hZV8cW12yAUWNjjU19xokJsmbaT9ICVy7LNoRhRubpPO58ICkn8A6fBaz49i+Q/WXAdzdpH5nvu0ffz5Vm2QXD5BC6MZcBn3NQX8sDftUK1lqUNuSJIppTR6cUuZW+RluuiajssxYT7LX5BUgW4vTgf1CcPJ5AlI2JLeytphOc7xEwJBk72vO9eLXQZ8CiSwHCYcz9QGDbPke1xfmlqBwjN/FaCLSk7fi1zEMLbDy0K8b26KUqlOaulPX2hjWsBzfX1TykrusqDxYZ72tIWe2GHPsLGQPEkmhUHlUSPaIMDkYIPydLcvLwS8YObThShCvG6AVmSR3v/25SM3pfb98AtLuKLieTq5kQFOog1HRqLjDZ4CdXFhxzLfoQb9+tXYC/cKsyD4GqVL6CQlfERhKUDMwSu284/6g6pqdVvZ7rzE7oiXgyO9PM+T9vA/j4UeNTahANbSx28AQrWa3n5EQHNOHMSAxv4rnpyDYUTUBrlTKYAUTHSvenKgBr9BKnGjJ4Oa+1jMpjgzw+BJT8smhJTVSQr5XFQoXiAUK2nzg= on: tags: true branch: master - stage: deploy language: node_js name: Deploy lesspass-render-password node_js: - lts/* script: skip before_deploy: cd packages/lesspass-render-password deploy: provider: npm email: guillaume@oslab.fr api_key: secure: rD1rs7QEA7IX8erpnJStx2AKhS8DpzvFxCA/jw/t9cx40Hk29jTVq1h22Sr6Gitm169cH9/sFzZEqera64w/sC7tsLimf/3aQhx8ia0y8taNxVw6nQTRYhvJazhOEnPEN0hZV8cW12yAUWNjjU19xokJsmbaT9ICVy7LNoRhRubpPO58ICkn8A6fBaz49i+Q/WXAdzdpH5nvu0ffz5Vm2QXD5BC6MZcBn3NQX8sDftUK1lqUNuSJIppTR6cUuZW+RluuiajssxYT7LX5BUgW4vTgf1CcPJ5AlI2JLeytphOc7xEwJBk72vO9eLXQZ8CiSwHCYcz9QGDbPke1xfmlqBwjN/FaCLSk7fi1zEMLbDy0K8b26KUqlOaulPX2hjWsBzfX1TykrusqDxYZ72tIWe2GHPsLGQPEkmhUHlUSPaIMDkYIPydLcvLwS8YObThShCvG6AVmSR3v/25SM3pfb98AtLuKLieTq5kQFOog1HRqLjDZ4CdXFhxzLfoQb9+tXYC/cKsyD4GqVL6CQlfERhKUDMwSu284/6g6pqdVvZ7rzE7oiXgyO9PM+T9vA/j4UeNTahANbSx28AQrWa3n5EQHNOHMSAxv4rnpyDYUTUBrlTKYAUTHSvenKgBr9BKnGjJ4Oa+1jMpjgzw+BJT8smhJTVSQr5XFQoXiAUK2nzg= on: tags: true branch: master - stage: deploy language: generic name: Deploy containers dist: xenial sudo: required script: skip before_deploy: - sudo add-apt-repository -y ppa:projectatomic/ppa - sudo apt-get update -y - sudo apt-get install -y podman - sudo mkdir -p /etc/containers - sudo curl https://raw.githubusercontent.com/projectatomic/registries/master/registries.fedora -o /etc/containers/registries.conf - cd containers deploy: provider: script script: bash ./deploy - stage: deploy language: node_js name: Deploy web extensions node_js: - lts/* cache: yarn: true before_install: - curl -o- -L https://yarnpkg.com/install.sh | bash - export PATH=$HOME/.yarn/bin:$PATH install: - yarn install script: - ./bin/build_web_extensions - git diff-index --quiet HEAD - yarn workspace lesspass-web-extension run release stages: - name: test - name: deploy if: tag IS present