misc: migrate to YAML azure pipelines
This commit is contained in:
parent
5668eea40a
commit
752ac61bf5
158
azure-pipelines.yml
Normal file
158
azure-pipelines.yml
Normal file
@ -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'
|
||||
|
@ -1,4 +1,4 @@
|
||||
case $TEST_MATRIX in
|
||||
case $MATRIXENV in
|
||||
postgres)
|
||||
echo "Using PostgreSQL..."
|
||||
docker run -d -p 5432:5432 --name db --network="host" -e "POSTGRES_PASSWORD=Password123!" -e "POSTGRES_USER=wiki" -e "POSTGRES_DB=wiki" postgres:11
|
||||
|
Loading…
Reference in New Issue
Block a user