|
@@ -1,158 +0,0 @@
|
|
-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'
|
|
|
|
-
|
|
|