Skip to content

Commit

Permalink
Azure pipeline: add build pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
adam-douglass committed Mar 30, 2020
1 parent dc92825 commit 2e7e4d5
Showing 1 changed file with 121 additions and 0 deletions.
121 changes: 121 additions & 0 deletions pipelines/azure-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: build

trigger:
tags:
include: ["v*"]

pool:
vmImage: 'ubuntu-18.04'

resources:
containers:
- container: redis
image: redis
ports:
- 6379:6379
- container: elasticsearch
image: sgaroncse/elasticsearch:7.6.0
env:
ES_JAVA_OPTS: "-Xms256m -Xmx512m"
DISCOVERY_TYPE: 'single-node'
ports:
- 9200:9200

stages:
- stage: build
jobs:
- job: build_package
displayName: Build Package
steps:
- task: UsePythonVersion@0
displayName: Set python version
inputs: {versionSpec: 3.8}
- script: |
sudo env "PATH=$PATH" python -m pip install --no-cache-dir -U wheel cython pip
python setup.py sdist
- publish: $(System.DefaultWorkingDirectory)/dist/
artifact: dist
- publish: $(System.DefaultWorkingDirectory)/pipelines/
artifact: pipelines
- publish: $(System.DefaultWorkingDirectory)/test/
artifact: test
- stage: test
jobs:
- job: run_test
strategy:
matrix:
python3_7:
python.version: '3.7'
Python3_8:
python.version: '3.8'
timeoutInMinutes: 10
services:
elasticsearch: elasticsearch
redis: redis
steps:
- checkout: none
- task: UsePythonVersion@0
displayName: Set python version
inputs:
versionSpec: '$(python.version)'
- download: current
artifact: dist
- download: current
artifact: pipelines
- download: current
artifact: test
- script: |
set -x # Echo commands before they are run
sudo apt-get update
sudo apt-get install -y build-essential libffi-dev libfuzzy-dev python3-dev
export VERSION=${BUILD_SOURCEBRANCH#"refs/tags/v"}
sudo -E env "PATH=$PATH" python -m pip install --no-cache-dir -f $(Pipeline.Workspace)/dist/ "assemblyline-core[test]==${VERSION}"
sudo mkdir -p /etc/assemblyline/
sudo mkdir -p /var/cache/assemblyline/
sudo chmod a+rw /var/cache/assemblyline/
sudo cp $(Pipeline.Workspace)/pipelines/config.yml /etc/assemblyline
displayName: Install package
- script: pytest -rsx -vv
workingDirectory: $(Pipeline.Workspace)/test
displayName: Test
- stage: deploy
jobs:
- job: deploy
displayName: Deploy packages and containers
variables:
- group: deployment-information
steps:
- download: current
artifact: dist
- script: |
set -xv # Echo commands before they are run
sudo env "PATH=$PATH" python -m pip install --no-cache-dir twine
ls dist
twine upload --skip-existing --repository-url $TEST_REPOSITORY_URL dist/*
workingDirectory: $(Pipeline.Workspace)
displayName: Deploy to Test PyPI
env:
TWINE_USERNAME: $(twineUsername)
TWINE_PASSWORD: $(twinePassword)
- script: |
set -xv # Echo commands before they are run
sudo env "PATH=$PATH" python -m pip install --no-cache-dir twine
ls dist
twine upload --skip-existing dist/*
workingDirectory: $(Pipeline.Workspace)
displayName: Deploy to PyPI
env:
TWINE_USERNAME: $(twineUsername)
TWINE_PASSWORD: $(twinePassword)
- task: Docker@2
displayName: Login to docker hub
inputs:
command: login
containerRegistry: dockerhub
- script: |
set -xv # Echo commands before they are run
export TAG=${BUILD_SOURCEBRANCH#"refs/tags/v"}
until sudo python3 -m pip search assemblyline-core 2>&1 | grep -q "assemblyline-core ($TAG)"; do sleep 2; done
docker build --build-arg version=$TAG -t cccs/assemblyline-core:$TAG -t cccs/assemblyline-core:latest deployment
docker push cccs/assemblyline-core
displayName: Deploy to Docker Hub

0 comments on commit 2e7e4d5

Please sign in to comment.