Skip to content

Test Installers 25.3.12-dev.10001 / (nonce = d00286b5dff77eec) #279

Test Installers 25.3.12-dev.10001 / (nonce = d00286b5dff77eec)

Test Installers 25.3.12-dev.10001 / (nonce = d00286b5dff77eec) #279

name: Test Installers
permissions:
contents: read
on:
workflow_dispatch:
inputs:
bucket_name:
type: string
description: 'S3 bucket to download installers from'
required: true
bucket_key_prefix:
type: string
description: 'S3 bucket key prefix to download installers from'
required: true
dev_version:
type: string
description: 'Dev version of the installer to download'
nonce:
type: string
description: 'A random string to track the run from dispatch to watching'
github_pr_number:
type: string
description: 'Number of the PR that triggered this run'
evergreen_task_url:
type: string
description: 'URL to the Evergreen job that triggered this run'
run-name: Test Installers ${{ github.event.inputs.dev_version || github.ref_name }} / (nonce = ${{ github.event.inputs.nonce || 'not set' }})
jobs:
summarize:
runs-on: ubuntu-latest
steps:
- name: Add URL for the GitHub PR
if: ${{ github.event.inputs.github_pr_number }}
run: echo "[GitHub PR ${{ github.event.inputs.github_pr_number }}](https://github.com/mongodb-js/compass/pull/${{ github.event.inputs.github_pr_number }})" >> $GITHUB_STEP_SUMMARY
- name: Add URL for the Evergreen task
if: ${{ github.event.inputs.evergreen_task_url }}
run: echo "[Evergreen Task](${{ github.event.inputs.evergreen_task_url }})" >> $GITHUB_STEP_SUMMARY
test:
name: ${{ matrix.package }} test ${{ matrix.test }} (${{ matrix.hadron-distribution }})
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
test:
- time-to-first-query
- auto-update-from
- auto-update-to
package:
- osx_dmg
- osx_zip
- windows_zip
- windows_msi
- windows_setup
- linux_deb
# TODO(COMPASS-9061): Fix and enable the linux_tar smoke tests
#- linux_tar
- linux_rpm
hadron-distribution:
- compass
- compass-readonly
- compass-isolated
include:
# MacOS
- package: osx_dmg
runs-on: macos-13
arch: x64
hadron-platform: darwin
- package: osx_zip
runs-on: macos-latest
arch: arm64
hadron-platform: darwin
# Windows
- package: windows_zip
runs-on: windows-latest
arch: x64
hadron-platform: windows
- package: windows_msi
runs-on: windows-latest
arch: x64
hadron-platform: windows
- package: windows_setup
runs-on: windows-latest
arch: x64
hadron-platform: windows
# Linux
- package: linux_deb
runs-on: ubuntu-latest
arch: x64
hadron-platform: linux
# TODO(COMPASS-9061): Fix and enable the linux_tar smoke tests
#- package: linux_tar
# runs-on: ubuntu-latest
# arch: x64
# hadron-platform: linux
- package: linux_rpm
runs-on: ubuntu-latest
arch: x64
hadron-platform: linux
distro-id: rhel80
post-checkout-command: |
dnf install -y gcc gcc-c++ make git nss dbus xorg-x11-server-Xvfb yum-utils
# Enable the devel repo to install compat-openssl11 (bringing libcrupto.so.1.1 to run mongod)
dnf config-manager --set-enabled devel
dnf update -y
dnf install -y compat-openssl11
container:
image: rockylinux:9
volumes:
- ${{ github.workspace }}:/compass
# Install the update server for auto-update tests
- test: auto-update-from
install-update-server: true
- test: auto-update-to
install-update-server: true
exclude:
# Skip auto-update tests for isolated and readonly distributions for now
# This is not supported by the update server we're using in the test harness
- hadron-distribution: compass-isolated
test: auto-update-from
- hadron-distribution: compass-isolated
test: auto-update-to
- hadron-distribution: compass-readonly
test: auto-update-from
- hadron-distribution: compass-readonly
test: auto-update-to
# TODO(COMPASS-9067): auto-update-from does not work for windows. Not
# even manually. It downloads the releases file, the toast appears
# that says it is downloading the update, the log appears that says
# thatit is downloading the update, but it never makes the request to
# the update server to actually download the .nupkg file. Strangely
# auto-update-to works. (which starts with the latest release and then
# updates to the newly packaged one) and auto-updating from an old dev
# version also works. it seems to be the fact that it is actually
# downgrading from the new package to the most recent release that
# breaks it? Can't see any other difference.
- test: auto-update-from
package: windows_setup
# Skip auto-update-to tests for anything except the one release
# package we install for that platform and arch, because that's the
# only one that gets installed and therefore updated.
# See https://github.com/10gen/compass-mongodb-com/blob/ae1ce87c54ab8702e94b154ffe2bfb9997b56661/src/routes/update.js#L320-L411
# ie. only leave osx_dmg, windows_setup, linux_deb, linux_rpm
- test: auto-update-to
package: osx_zip
- test: auto-update-to
package: windows_zip
- test: auto-update-to
package: windows_msi
- test: auto-update-to
package: linux_tar
- test: auto-update-to
package: linux_rpm
# Skip time-to-first-query tests for readonly because it doesn't have editable documents
# See https://github.com/mongodb-js/compass/actions/runs/13286945911/job/37097791601
- hadron-distribution: compass-readonly
test: time-to-first-query
runs-on: ${{ matrix.runs-on }}
container: ${{ matrix.container }}
env:
DEBUG: compass:smoketests:*
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Run post-checkout command
if: matrix.post-checkout-command
run: ${{ matrix.post-checkout-command }}
- name: Cache downloads
uses: actions/cache@v4
with:
key: smoke-tests-downloads-${{ inputs.dev_version || github.ref_name }}-${{ runner.os }}-${{ runner.arch }}-${{ matrix.package }}
path: packages/compass-smoke-tests/.downloads
- name: Install dependencies and build packages
run: npm ci
- name: Bootstrap packages
run: npx lerna run bootstrap --scope @mongodb-js/compass-smoke-tests --include-dependencies
- name: Create GitHub App Token
if: matrix.install-update-server
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.DEVTOOLS_BOT_APP_ID }}
private-key: ${{ secrets.DEVTOOLS_BOT_PRIVATE_KEY }}
owner: 10gen
repositories: compass-mongodb-com
- name: Checkout Compass Update server
if: matrix.install-update-server
uses: actions/checkout@v4
with:
repository: 10gen/compass-mongodb-com
token: ${{ steps.app-token.outputs.token }}
# Make sure the value of GITHUB_TOKEN will not be persisted in repo's config
persist-credentials: false
path: compass-mongodb-com
- name: Install Compass Update server
if: matrix.install-update-server
run: npm install --no-save --workspace packages/compass-smoke-tests ./compass-mongodb-com
- name: Run tests
env:
EVERGREEN_BUCKET_NAME: ${{ inputs.bucket_name }}
EVERGREEN_BUCKET_KEY_PREFIX: ${{ inputs.bucket_key_prefix }}
HADRON_DISTRIBUTION: ${{ matrix.hadron-distribution }}
DEV_VERSION_IDENTIFIER: ${{ inputs.dev_version }}
PLATFORM: ${{ matrix.hadron-platform }}
ARCH: ${{ matrix.arch }}
# Useful to pass a "fake" DISTRO_ID environment to inform the "mongodb-download-url" package
# See https://github.com/mongodb-js/devtools-shared/blob/aff66db7b7fc4f8ecaec2383fd4e8c116733a7e4/packages/download-url/src/linux-distro.ts#L14
DISTRO_ID: ${{ matrix.distro-id }}
# Exposing token to prevent update server from being rate limited
GITHUB_TOKEN: ${{ github.token }}
working-directory: packages/compass-smoke-tests
# Using --skipUninstalling --skipCleanup because the runners are ephemeral
run: npm start -- --package ${{ matrix.package }} --tests ${{ matrix.test }} --skipUninstall --skipCleanup
- name: 'Upload logs'
uses: actions/upload-artifact@v4
if: always()
with:
name: ${{ matrix.hadron-distribution}}-${{ matrix.hadron-platform}}-${{ matrix.arch }}-${{ matrix.package }}-${{ matrix.test }}-logs
path: packages/compass-e2e-tests/.log/
include-hidden-files: true