Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update to use pipeline templates #34

Merged
merged 1 commit into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"
50 changes: 23 additions & 27 deletions pipelines/azure-tests.yaml
Original file line number Diff line number Diff line change
@@ -1,36 +1,32 @@
name: tests

variables:
- group: unittest-samples

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

pool:
vmImage: "ubuntu-20.04"

jobs:
- job: run_test
strategy:
matrix:
python3_7:
python.version: "3.7"
Python3_8:
python.version: "3.8"

timeoutInMinutes: 10
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

steps:
- task: UsePythonVersion@0
displayName: Set python version
inputs:
versionSpec: "$(python.version)"
- script: |
sudo apt-get update
sudo apt-get install -y qemu-utils libfuzzy-dev libfuzzy2
sudo rm -rf /var/lib/apt/lists/*
sudo env "PATH=$PATH" python -m pip install -U --no-cache-dir assemblyline assemblyline_v4_service
sudo env "PATH=$PATH" python -m pip install -U --no-cache-dir -r `pwd`/test/requirements.txt
sudo rm -rf /tmp/* /var/lib/apt/lists/* ~/.cache/pip
displayName: Setup environment
- script: python -m pytest --durations=10 -rsx -vv --cov-report=xml --cov=metadefender
displayName: Test
- script: python -m codecov
displayName: Upload Coverage
extends:
template: stages/test-service.yaml@PipelineTemplates
parameters:
samples_repo: unittest-samples
test_container: "false"

1 change: 1 addition & 0 deletions pkglist.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
qemu-utils