mirror of https://github.com/Requarks/wiki.git
2 changed files with 159 additions and 1 deletions
Unified View
Diff Options
@ -0,0 +1,158 @@ |
|||||
|
name: 2.5.$(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: linuxBuild |
||||
|
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: linuxBuild |
||||
|
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' |
||||
|
|
Write
Preview
Loading…
Cancel
Save