Skip to content

Build and Test

Build and Test #3021

Workflow file for this run

name: Build and Test
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event_name }}
cancel-in-progress: true
on:
push:
tags:
- "v*.*.*-rc*"
- "v*.*-rc*"
schedule:
- cron: "0 1 * * *" #UTC
pull_request:
workflow_dispatch:
inputs:
arch:
description: "Architecture to build the image for (amd64/arm64)"
type: choice
default: "amd64"
options:
- "amd64"
- "arm64"
build_target:
description: "Mage build target"
type: choice
default: "prod"
options:
- "prod"
- "dev"
build_scope:
description: "Mage build scope"
type: choice
default: "with ML"
options:
- "with ML"
- "without ML"
memgraph_version:
description: "Memgraph version built into this image (format: X.Y.Z). You can leave empty if using custom download link."
type: string
required: false
memgraph_download_link:
description: "Memgraph package download link. Leave empty to use the official download link."
type: string
required: false
memgraph_ref:
type: string
description: "Memgraph submodule branch to build query modules from"
default: 'master'
memgraph_ref_update:
type: boolean
description: "Update Memgraph submodule to the latest commit"
default: true
jobs:
RC_test:
if: github.ref_type == 'tag'
strategy:
fail-fast: false
matrix:
mg_version: ["2.19.0"]
mg_rc_version: ["rc1"]
arch: ["amd64", "arm64"]
build_target: ["prod", "dev"]
build_scope: ["with ML", "without ML"]
uses: ./.github/workflows/reusable_test.yml
with:
arch: "${{ matrix.arch }}"
build_target: "${{ matrix.build_target }}"
build_scope: "${{ matrix.build_scope }}"
memgraph_ref: "v${{ matrix.mg_version }}-${{ matrix.mg_rc_version }}"
memgraph_ref_update: "false"
memgraph_download_link: "s3://deps.memgraph.io/memgraph/v${{ matrix.mg_version }}-${{ matrix.mg_rc_version }}/debian-11${{ matrix.arch == 'arm64' && '-aarch64' || '' }}${{ matrix.build_scope == 'dev' && '-relwithdebinfo' || '' }}/memgraph_${{ matrix.mg_version }}-1_${{ matrix.arch }}.deb"
secrets: inherit
PR_test:
if: github.event_name == 'pull_request'
strategy:
fail-fast: false
matrix:
arch: ["amd64"]
build_target: ["prod"]
build_scope: ["with ML", "without ML"]
uses: ./.github/workflows/reusable_test.yml
with:
arch: "${{ matrix.arch }}"
build_target: "${{ matrix.build_target }}"
build_scope: "${{ matrix.build_scope }}"
memgraph_version: "2.20.1"
memgraph_ref: "master"
memgraph_ref_update: "true"
secrets: inherit
Manual_test:
if: github.event_name == 'workflow_dispatch'
uses: ./.github/workflows/reusable_test.yml
with:
arch: "${{ github.event.inputs.arch }}"
build_target: "${{ github.event.inputs.build_target }}"
build_scope: "${{ github.event.inputs.build_scope }}"
memgraph_version: "${{ github.event.inputs.memgraph_version }}"
memgraph_download_link: "${{ github.event.inputs.memgraph_download_link }}"
memgraph_ref: "${{ github.event.inputs.memgraph_ref }}"
memgraph_ref_update: "${{ github.event.inputs.memgraph_ref_update }}"
secrets: inherit
Nightly_test:
if: github.event_name == 'schedule'
strategy:
fail-fast: false
matrix:
arch: ["amd64", "arm64"]
build_target: ["prod", "dev"]
build_scope: ["with ML", "without ML"]
uses: ./.github/workflows/reusable_test.yml
with:
arch: "${{ matrix.arch }}"
build_target: "${{ matrix.build_target }}"
build_scope: "${{ matrix.build_scope }}"
memgraph_version: "2.20.1"
memgraph_ref: "master"
memgraph_ref_update: "true"
secrets: inherit