OwlCyberSecurity - MANAGER
Edit File: packaging-jobs.yml
jobs: - job: docker_build pool: vmImage: ubuntu-22.04 strategy: matrix: arm32v6: DOCKER_ARCH: arm32v6 arm64v8: DOCKER_ARCH: arm64v8 amd64: DOCKER_ARCH: amd64 # The default timeout of 60 minutes is a little low for compiling # cryptography on ARM architectures. timeoutInMinutes: 180 steps: - bash: set -e && tools/docker/build.sh $(dockerTag) $DOCKER_ARCH displayName: Build the Docker images # We don't filter for the Docker Hub organization to continue to allow # easy testing of these scripts on forks. - bash: | set -e DOCKER_IMAGES=$(docker images --filter reference='*/certbot' --filter reference='*/dns-*' --format '{{.Repository}}') docker save --output images.tar $DOCKER_IMAGES displayName: Save the Docker images # If the name of the tar file or artifact changes, the deploy stage will # also need to be updated. - bash: set -e && mv images.tar $(Build.ArtifactStagingDirectory) displayName: Prepare Docker artifact - task: PublishPipelineArtifact@1 inputs: path: $(Build.ArtifactStagingDirectory) artifact: docker_$(DOCKER_ARCH) displayName: Store Docker artifact - job: docker_test dependsOn: docker_build pool: vmImage: ubuntu-22.04 strategy: matrix: arm32v6: DOCKER_ARCH: arm32v6 arm64v8: DOCKER_ARCH: arm64v8 amd64: DOCKER_ARCH: amd64 steps: - task: DownloadPipelineArtifact@2 inputs: artifact: docker_$(DOCKER_ARCH) path: $(Build.SourcesDirectory) displayName: Retrieve Docker images - bash: set -e && docker load --input $(Build.SourcesDirectory)/images.tar displayName: Load Docker images - bash: | set -e && tools/docker/test.sh $(dockerTag) $DOCKER_ARCH displayName: Run integration tests for Docker images - job: snaps_build pool: vmImage: ubuntu-22.04 strategy: matrix: amd64: SNAP_ARCH: amd64 armhf: SNAP_ARCH: armhf arm64: SNAP_ARCH: arm64 timeoutInMinutes: 0 steps: - script: | set -e sudo apt-get update sudo apt-get install -y --no-install-recommends snapd sudo snap install --classic snapcraft displayName: Install dependencies - task: UsePythonVersion@0 inputs: versionSpec: 3.12 addToPath: true - task: DownloadSecureFile@1 name: credentials inputs: secureFile: launchpad-credentials - script: | set -e git config --global user.email "$(Build.RequestedForEmail)" git config --global user.name "$(Build.RequestedFor)" mkdir -p ~/.local/share/snapcraft/provider/launchpad cp $(credentials.secureFilePath) ~/.local/share/snapcraft/provider/launchpad/credentials python3 tools/snap/build_remote.py ALL --archs ${SNAP_ARCH} --timeout $(snapBuildTimeout) displayName: Build snaps - script: | set -e mv *.snap $(Build.ArtifactStagingDirectory) mv certbot-dns-*/*.snap $(Build.ArtifactStagingDirectory) displayName: Prepare artifacts - task: PublishPipelineArtifact@1 inputs: path: $(Build.ArtifactStagingDirectory) artifact: snaps_$(SNAP_ARCH) displayName: Store snaps artifacts - job: snap_run dependsOn: snaps_build pool: vmImage: ubuntu-22.04 steps: - task: UsePythonVersion@0 inputs: versionSpec: 3.12 addToPath: true - script: | set -e sudo apt-get update sudo apt-get install -y --no-install-recommends nginx-light snapd python3 -m venv venv venv/bin/python tools/pip_install.py -U tox displayName: Install dependencies - task: DownloadPipelineArtifact@2 inputs: artifact: snaps_amd64 path: $(Build.SourcesDirectory)/snap displayName: Retrieve Certbot snaps - script: | set -e sudo snap install --dangerous --classic snap/certbot_*.snap displayName: Install Certbot snap - script: | set -e venv/bin/python -m tox run -e integration-external,apacheconftest-external-with-pebble displayName: Run tox - job: snap_dns_run dependsOn: snaps_build pool: vmImage: ubuntu-22.04 steps: - script: | set -e sudo apt-get update sudo apt-get install -y --no-install-recommends snapd displayName: Install dependencies - task: UsePythonVersion@0 inputs: versionSpec: 3.12 addToPath: true - task: DownloadPipelineArtifact@2 inputs: artifact: snaps_amd64 path: $(Build.SourcesDirectory)/snap displayName: Retrieve Certbot snaps - script: | set -e python3 -m venv venv venv/bin/python tools/pip_install.py -e certbot-ci displayName: Prepare Certbot-CI - script: | set -e sudo -E venv/bin/pytest certbot-ci/snap_integration_tests/dns_tests --allow-persistent-changes --snap-folder $(Build.SourcesDirectory)/snap --snap-arch amd64 displayName: Test DNS plugins snaps