Skip to content

Commit

Permalink
Merge pull request #27 from CybercentreCanada/update-pipeline-to-temp…
Browse files Browse the repository at this point in the history
…late

(DEV) Update pipeline to template
  • Loading branch information
cccs-shellyw authored Sep 18, 2024
2 parents 759cf29 + 6a56a28 commit 96e40ba
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 131 deletions.
20 changes: 20 additions & 0 deletions pipelines/.cruft.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"template": "[email protected]:CybercentreCanada/assemblyline-service-pipeline-generator.git",
"commit": "9c6acb636bac72450e3adbccc2c561ab95beabff",
"checkout": null,
"context": {
"cookiecutter": {
"__directory_name": "pipelines",
"classification": "UNCLASSIFIED",
"is_public": true,
"test_in_container": false,
"test_versions": "default",
"__setupscript": "setup.bash",
"_extensions": [
"local_extensions.extract_versions"
],
"_template": "[email protected]:CybercentreCanada/assemblyline-service-pipeline-generator.git"
}
},
"directory": null
}
1 change: 1 addition & 0 deletions pipelines/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
setup.bash
88 changes: 21 additions & 67 deletions pipelines/azure-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,6 @@ name: build

variables:
- group: unittest-samples
- name: self_location
value: "self_location"
- name: full_self_location
value: "$(Agent.BuildDirectory)/$(self_location)"
- name: samples_location
value: "samples_location"
- name: full_samples_location
value: "$(Agent.BuildDirectory)/$(samples_location)"

resources:
repositories:
- repository: unittest-samples
type: github
name: $(unittest_samples_repository)
ref: main
endpoint: github-repo-sa
trigger: none

trigger:
tags:
Expand All @@ -28,54 +11,25 @@ pr: none
pool:
vmImage: "ubuntu-20.04"

stages:
- stage: deploy
jobs:
- job: deploy
displayName: Deploy containers to dockerhub
variables:
- group: deployment-information
steps:
- task: Docker@2
displayName: Login to docker hub
inputs:
command: login
containerRegistry: dockerhub
- task: Docker@2
displayName: Login to chimera
inputs:
command: login
containerRegistry: CHIMERA-U-ACR
- checkout: self
fetchDepth: 1
path: $(self_location)
- checkout: unittest-samples
fetchDepth: 1
path: $(samples_location)
- script: |
export TAG=${BUILD_SOURCEBRANCH#"refs/tags/v"}
if [[ "$TAG" == *stable* ]]; then export BUILD_TYPE=stable; else export BUILD_TYPE=latest; fi
docker build --build-arg version=$TAG --build-arg branch=$BUILD_TYPE -t cccs/${BUILD_REPOSITORY_NAME##*/}:$TAG -t cccs/${BUILD_REPOSITORY_NAME##*/}:$BUILD_TYPE -f ./Dockerfile .
workingDirectory: $(full_self_location)
displayName: Build containers
- script: |
[ ! -d "$(pwd)/tests" ] && echo "No tests found" && exit
export TAG=${BUILD_SOURCEBRANCH#"refs/tags/v"}
if [[ "$TAG" == *stable* ]]; then export BUILD_TYPE=stable; else export BUILD_TYPE=latest; fi
[ -f "$(pwd)/tests/requirements.txt" ] && docker run -e FULL_SELF_LOCATION=/opt/al_service -e FULL_SAMPLES_LOCATION=/opt/samples -v /usr/share/ca-certificates/mozilla:/usr/share/ca-certificates/mozilla -v $(pwd)/tests/:/opt/al_service/tests/ -v ${FULL_SAMPLES_LOCATION}:/opt/samples cccs/${BUILD_REPOSITORY_NAME##*/}:$BUILD_TYPE bash -c 'pip install -U -r tests/requirements.txt; pytest -p no:cacheprovider -vv' && exit
docker run -e FULL_SELF_LOCATION=/opt/al_service -e FULL_SAMPLES_LOCATION=/opt/samples -v /usr/share/ca-certificates/mozilla:/usr/share/ca-certificates/mozilla -v $(pwd)/tests/:/opt/al_service/tests/ -v ${FULL_SAMPLES_LOCATION}:/opt/samples cccs/${BUILD_REPOSITORY_NAME##*/}:$BUILD_TYPE bash -c 'pytest -p no:cacheprovider -vv'
workingDirectory: $(full_self_location)
displayName: Test containers
- script: |
export TAG=${BUILD_SOURCEBRANCH#"refs/tags/v"}
if [[ "$TAG" == *stable* ]]; then export BUILD_TYPE=stable; else export BUILD_TYPE=latest; fi
export SERIES="`expr $TAG : '\([0-9]\+\.[0-9]\+\.\)'`${BUILD_TYPE}"
resources:
repositories:
- repository: PipelineTemplates
type: github
name: CybercentreCanada/assemblyline-pipeline-templates
ref: refs/heads/main
endpoint: github-repo-sa
trigger: none
- repository: unittest-samples
type: github
name: $(unittest_samples_repository)
ref: main
endpoint: github-repo-sa
trigger: none

for IMAGE in "cccs/" "uchimera.azurecr.io/cccs/"
do
docker tag cccs/${BUILD_REPOSITORY_NAME##*/}:$BUILD_TYPE ${IMAGE}${BUILD_REPOSITORY_NAME##*/}:$TAG
docker tag cccs/${BUILD_REPOSITORY_NAME##*/}:$BUILD_TYPE ${IMAGE}${BUILD_REPOSITORY_NAME##*/}:$BUILD_TYPE
docker tag cccs/${BUILD_REPOSITORY_NAME##*/}:$BUILD_TYPE ${IMAGE}${BUILD_REPOSITORY_NAME##*/}:$SERIES
docker push ${IMAGE}${BUILD_REPOSITORY_NAME##*/} --all-tags
done
displayName: Deploy to container repositories
extends:
template: stages/deploy-service.yaml@PipelineTemplates
parameters:
is_public: "true"
samples_repo: unittest-samples
labels:
classification: "UNCLASSIFIED"
87 changes: 23 additions & 64 deletions pipelines/azure-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,74 +2,33 @@ name: tests

variables:
- group: unittest-samples
- name: self_location
value: "self_location"
- name: full_self_location
value: "$(Agent.BuildDirectory)/$(self_location)"
- name: samples_location
value: "samples_location"
- name: full_samples_location
value: "$(Agent.BuildDirectory)/$(samples_location)"

resources:
repositories:
- repository: unittest-samples
type: github
name: $(unittest_samples_repository)
ref: main
endpoint: github-repo-sa
trigger: none

trigger: ["*"]
pr: ["*"]

pool:
vmImage: "ubuntu-20.04"

jobs:
- job: run_test
strategy:
matrix:
Python3_9:
python.version: "3.9"
#Python3_10:
# python.version: "3.10"
#Python3_11:
# python.version: "3.11"

timeoutInMinutes: 10

steps:
- task: UsePythonVersion@0
displayName: Set python version
inputs:
versionSpec: "$(python.version)"
- checkout: self
fetchDepth: 1
path: $(self_location)
- checkout: unittest-samples
fetchDepth: 1
path: $(samples_location)
- script: |
[ ! -d "$(pwd)/tests" ] && echo "No tests found" && exit
sudo apt-get update
sudo apt-get install -y libfuzzy-dev libfuzzy2 wget default-jre-headless java-common
sudo rm -rf /var/lib/apt/lists/*
# Download and store CFR tool
export CFR_VERSION=0.152
sudo mkdir -p /opt/al/support/espresso
sudo wget -O /opt/al/support/espresso/cfr.jar https://github.com/leibnitz27/cfr/releases/download/$CFR_VERSION/cfr-$CFR_VERSION.jar
sudo env "PATH=$PATH" python -m pip install -U --no-cache-dir assemblyline assemblyline_v4_service
[ -f $(pwd)/requirements.txt ] && sudo env "PATH=$PATH" python -m pip install -U --no-cache-dir -r $(pwd)/requirements.txt
[ -f $(pwd)/tests/requirements.txt ] && sudo env "PATH=$PATH" python -m pip install -U --no-cache-dir -r $(pwd)/tests/requirements.txt
sudo rm -rf /tmp/* /var/lib/apt/lists/* ~/.cache/pip
workingDirectory: $(full_self_location)
displayName: Setup environment
- script: |
[ ! -d "$(pwd)/tests" ] && echo "No tests found" && exit
export REPO_NAME=${BUILD_REPOSITORY_NAME##*/}
python -m pytest -p no:cacheprovider --durations=10 -rsx -vv --disable-warnings
workingDirectory: $(full_self_location)
displayName: Test
resources:
repositories:
- repository: PipelineTemplates
type: github
name: CybercentreCanada/assemblyline-pipeline-templates
ref: refs/heads/main
endpoint: github-repo-sa
trigger: none
- repository: unittest-samples
type: github
name: $(unittest_samples_repository)
ref: main
endpoint: github-repo-sa
trigger: none

extends:
template: stages/test-service.yaml@PipelineTemplates
parameters:
samples_repo: unittest-samples
test_container: "false"
test_env:
CFR_VERSION: "0.152"

3 changes: 3 additions & 0 deletions pkglist.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
wget
default-jre-headless
java-common
4 changes: 4 additions & 0 deletions tests/extra-setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash

sudo mkdir -p /opt/al/support/espresso
sudo wget -O /opt/al/support/espresso/cfr.jar https://github.com/leibnitz27/cfr/releases/download/$CFR_VERSION/cfr-$CFR_VERSION.jar

0 comments on commit 96e40ba

Please sign in to comment.