123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- name: 2.6.$(Rev:r)
- trigger:
- - dev
- - latest
- stages:
- - stage: build
- displayName: Build stage
- jobs:
- # -------------------------------
- # BUILD - LINUX
- # -------------------------------
- - job: buildLinux
- displayName: Linux Build
- timeoutInMinutes: 60
- cancelTimeoutInMinutes: 1
- pool:
- name: Azure Pipelines
- vmImage: ubuntu-latest
- steps:
- - task: CmdLine@2
- displayName: Disable dev flag
- inputs:
- script: |
- sudo apt-get install jq -y
- mv package.json pkg-temp.json
- jq -r '.dev |= false' pkg-temp.json > package.json
- rm pkg-temp.json
- workingDirectory: '$(Build.SourcesDirectory)'
- - task: CmdLine@2
- displayName: Set Package Version
- inputs:
- script: |
- mv package.json pkg-temp.json
- jq -r '.version |= "$(Build.BuildNumber)"' pkg-temp.json > package.json
- rm pkg-temp.json
- cat package.json
- workingDirectory: '$(Build.SourcesDirectory)'
- - task: Docker@2
- displayName: Build Docker image
- inputs:
- containerRegistry: Docker Hub
- repository: requarks/wiki
- Dockerfile: dev/build/Dockerfile
- buildContext: '$(System.DefaultWorkingDirectory)'
- tags: |
- canary
- canary-$(Build.BuildNumber)
- addPipelineData: false
- - task: CmdLine@2
- displayName: Extract compiled files
- inputs:
- script: |
- docker create --name wiki requarks/wiki:canary
- docker cp wiki:/wiki $(Build.StagingDirectory)
- docker rm wiki
- rm $(Build.StagingDirectory)/wiki/config.yml
- cp $(System.DefaultWorkingDirectory)/config.sample.yml $(Build.StagingDirectory)/wiki/config.sample.yml
- find $(Build.StagingDirectory)/wiki/ -printf "%P\n" | tar -czf wiki-js.tar.gz --no-recursion -C $(Build.StagingDirectory)/wiki/ -T -
- workingDirectory: '$(Build.SourcesDirectory)'
- - task: PublishBuildArtifacts@1
- displayName: Publish Build Artifacts
- inputs:
- PathtoPublish: 'wiki-js.tar.gz'
- ArtifactName: 'drop'
- # -------------------------------
- # TESTS - CYPRESS E2E TESTS
- # -------------------------------
- - job: testCypress
- displayName: Cypress E2E Tests
- dependsOn: buildLinux
- strategy:
- maxParallel: 5
- matrix:
- MariaDB:
- MATRIXENV: mariadb
- MySQL:
- MATRIXENV: mysql
- MSSQLServer:
- MATRIXENV: mssql
- PostgreSQL:
- MATRIXENV: postgres
- SQLite:
- MATRIXENV: sqlite
- timeoutInMinutes: 30
- cancelTimeoutInMinutes: 1
- pool:
- name: Azure Pipelines
- vmImage: ubuntu-latest
- steps:
- - task: Bash@3
- displayName: Setup Environment
- inputs:
- targetType: filePath
- filePath: './dev/cypress/ci-setup.sh'
- workingDirectory: '$(Build.SourcesDirectory)'
- - script: |
- docker run --name cypress --ipc=host --shm-size 1G -v $BUILD_SOURCESDIRECTORY:/e2e -w /e2e cypress/included:4.9.0 --record --key "$(CYPRESS_KEY)" --headless --group "$MATRIXENV" --ci-build-id "$BUILD_BUILDNUMBER" --config baseUrl=http://172.17.0.1:3000
- displayName: 'Run Tests'
- # -------------------------------
- # BUILD - WINDOWS
- # -------------------------------
- - job: buildWindows
- displayName: Windows Build
- dependsOn: buildLinux
- pool:
- name: Azure Pipelines
- vmImage: windows-latest
- timeoutInMinutes: 30
- cancelTimeoutInMinutes: 1
- steps:
- - task: NodeTool@0
- displayName: 'Use Node 14.x'
- inputs:
- versionSpec: 14.x
- - task: 'geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3'
- displayName: 'Use Yarn 1.x'
- - task: DownloadBuildArtifacts@0
- displayName: 'Download Build Artifacts'
- inputs:
- artifactName: drop
- - script: |
- mkdir -p $(Build.SourcesDirectory)\win
- tar -xzf $(System.ArtifactsDirectory)\drop\wiki-js.tar.gz -C $(Build.SourcesDirectory)\win --exclude=node_modules
- displayName: 'Extract build'
- - script: 'yarn --production --frozen-lockfile --non-interactive'
- workingDirectory: win
- displayName: 'Install dependencies'
- - task: ArchiveFiles@2
- displayName: 'Archive app'
- inputs:
- rootFolderOrFile: '$(System.DefaultWorkingDirectory)\win'
- includeRootFolder: false
- archiveType: tar
- archiveFile: 'wiki-js-windows.tar.gz'
- - task: PublishBuildArtifacts@1
- displayName: Publish Build Artifacts
- inputs:
- PathtoPublish: 'wiki-js-windows.tar.gz'
- ArtifactName: 'drop-win'
|