Skip to content

Tests

Tests #101

Workflow file for this run

name: Tests
on:
pull_request:
branches: [ "master", "release/**", "core-snap-security-release/**", "security-release/**" ]
push:
branches: [ "master", "release/**", "core-snap-security-release/**", "security-release/**" ]
workflow_dispatch:
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
# snap-builds:
# uses: ./.github/workflows/snap-builds.yaml
# with:
# runs-on: ${{ matrix.runs-on }}
# toolchain: ${{ matrix.toolchain }}
# variant: ${{ matrix.variant }}
# strategy:
# matrix:
# runs-on:
# - '["ubuntu-22.04"]'
# # Tags to identify the self-hosted runners to use from
# # internal runner collection. See internal self-hosted
# # runners doc for the complete list of options.
# - '["self-hosted", "Linux", "jammy", "ARM64", "large"]'
# toolchain:
# - default
# - FIPS
# variant:
# # test version is a build of snapd with test keys and should
# # only be installed by test runners. The pristine versions
# # are the build that should be installed by human users.
# - pristine
# - test
# # Exclude building everything for ARM but the version for testing
# # to keep the number of builds down as we currently don't have a
# # clear need for these excluded builds.
# exclude:
# - runs-on: '["self-hosted", "Linux", "jammy", "ARM64", "large"]'
# toolchain: FIPS
# - runs-on: '["self-hosted", "Linux", "jammy", "ARM64", "large"]'
# variant: pristine
# cache-build-deps:

Check failure on line 46 in .github/workflows/test.yaml

View workflow run for this annotation

GitHub Actions / Tests

Invalid workflow file

The workflow is not valid. In maykathm/snapd/.github/workflows/static-checks.yaml@0f870f44874a5dc1017a2796370b5197f922fb24 (Line: 46, Col: 11): Error from called workflow maykathm/snapd/.github/workflows/install-snap.yaml@0f870f44874a5dc1017a2796370b5197f922fb24 (Line: 24, Col: 16): Unrecognized named-value: 'steps'. Located at position 1 within expression: steps.download.outputs.snap-revision
# runs-on: ubuntu-20.04
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Download Debian dependencies
# run: |
# sudo apt clean
# sudo apt update
# sudo apt build-dep -d -y ${{ github.workspace }}
# # for indent
# sudo apt install texinfo autopoint
# - name: Copy dependencies
# run: |
# sudo tar cvf cached-apt.tar /var/cache/apt
# - name: upload Debian dependencies
# uses: actions/upload-artifact@v4
# with:
# name: debian-dependencies
# path: ./cached-apt.tar
static-checks:
uses: ./.github/workflows/static-checks.yaml
# needs: [cache-build-deps]
with:
runs-on: ubuntu-latest
gochannel: ${{ matrix.gochannel }}
strategy:
# we cache successful runs so it's fine to keep going
fail-fast: false
matrix:
gochannel:
# - 1.18/stable
- latest/stable
# branch-static-checks:
# runs-on: ubuntu-latest
# needs: [cache-build-deps]
# if: github.ref != 'refs/heads/master'
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# with:
# # needed for git commit history
# fetch-depth: 0
# - name: check-branch-ubuntu-daily-spread
# run: |
# # Compare the daily system in master and in the current branch
# wget -q -O test_master.yaml https://raw.githubusercontent.com/snapcore/snapd/master/.github/workflows/test.yaml
# system_daily="$(yq '.jobs.spread.strategy.matrix.include.[] | select(.group == "ubuntu-daily") | .systems' test_master.yaml)"
# current_daily="$(yq '.jobs.spread.strategy.matrix.include.[] | select(.group == "ubuntu-daily") | .systems' .github/workflows/test.yaml)"
# test "$system_daily" == "$current_daily"
# shell: bash
# unit-tests:
# uses: ./.github/workflows/unit-tests.yaml
# needs: [static-checks]
# with:
# runs-on: ubuntu-22.04
# gochannel: ${{ matrix.gochannel }}
# strategy:
# # we cache successful runs so it's fine to keep going
# fail-fast: false
# matrix:
# gochannel:
# - 1.18/stable
# - latest/stable
# # TODO run unit tests of C code
# unit-tests-special:
# uses: ./.github/workflows/unit-tests.yaml
# needs: [static-checks]
# with:
# runs-on: ubuntu-22.04
# gochannel: ${{ matrix.gochannel }}
# skip-coverage: ${{ matrix.test-case.skip-coverage }}
# go-build-tags: ${{ matrix.test-case.go-build-tags }}
# go-test-race: ${{ matrix.test-case.go-test-race }}
# snapd-debug: ${{ matrix.test-case.snapd-debug }}
# strategy:
# # we cache successful runs so it's fine to keep going
# fail-fast: false
# matrix:
# gochannel:
# - 1.18/stable
# - latest/stable
# test-case:
# - { go-build-tags: snapd_debug, skip-coverage: false, snapd-debug: true, go-test-race: false}
# - { go-build-tags: withbootassetstesting, skip-coverage: false, snapd-debug: false, go-test-race: false}
# - { go-build-tags: nosecboot, skip-coverage: false, snapd-debug: false, go-test-race: false}
# - { go-build-tags: faultinject, skip-coverage: false, snapd-debug: false, go-test-race: false}
# - { go-build-tags: snapdusergo, skip-coverage: false, snapd-debug: false, go-test-race: false}
# - { go-build-tags: "", skip-coverage: true, snapd-debug: false, go-test-race: true }
# unit-tests-cross-distro:
# uses: ./.github/workflows/unit-tests-cross-distro.yaml
# needs: [static-checks]
# with:
# runs-on: ubuntu-latest
# distro: ${{ matrix.distro }}
# strategy:
# fail-fast: false
# matrix:
# distro:
# # TODO add arch?
# - fedora:latest
# - opensuse/tumbleweed
# code-coverage:
# needs: [unit-tests, unit-tests-special]
# runs-on: ubuntu-20.04
# env:
# GOPATH: ${{ github.workspace }}
# # Set PATH to ignore the load of magic binaries from /usr/local/bin And
# # to use the go snap automatically. Note that we install go from the
# # snap in a step below. Without this we get the GitHub-controlled latest
# # version of go.
# PATH: /snap/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${{ github.workspace }}/bin
# GOROOT: ""
# steps:
# - name: Download the coverage files
# uses: actions/download-artifact@v4
# with:
# pattern: coverage-files-*
# path: .coverage/
# merge-multiple: true
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v4
# # uploading to codecov occasionally fails, so continue running the test
# # workflow regardless of the upload
# continue-on-error: true
# with:
# fail_ci_if_error: true
# flags: unittests
# name: codecov-umbrella
# files: .coverage/coverage-*.cov
# verbose: true
# spread:
# uses: ./.github/workflows/spread-tests.yaml
# needs: [unit-tests, snap-builds]
# name: "spread ${{ matrix.group }}"
# with:
# # Github doesn't support passing sequences as parameters.
# # Instead here we create a json array and pass it as a string.
# # Then in the spread workflow it turns it into a sequence
# # using the fromJSON expression.
# runs-on: '["self-hosted", "spread-enabled"]'
# group: ${{ matrix.group }}
# backend: ${{ matrix.backend }}
# systems: ${{ matrix.systems }}
# tasks: ${{ matrix.tasks }}
# rules: ${{ matrix.rules }}
# strategy:
# # FIXME: enable fail-fast mode once spread can cancel an executing job.
# # Disable fail-fast mode as it doesn't function with spread. It seems
# # that cancelling tasks requires short, interruptible actions and
# # interrupting spread, notably, does not work today. As such disable
# # fail-fast while we tackle that problem upstream.
# fail-fast: false
# matrix:
# include:
# - group: amazon-linux
# backend: google-distro-1
# systems: 'amazon-linux-2-64 amazon-linux-2023-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: arch-linux
# backend: google-distro-2
# systems: 'arch-linux-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: centos
# backend: google-distro-2
# systems: 'centos-9-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: debian-req
# backend: google-distro-1
# systems: 'debian-11-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: debian-not-req
# backend: google-distro-1
# systems: 'debian-12-64 debian-sid-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: fedora
# backend: openstack
# systems: 'fedora-40-64 fedora-41-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: opensuse
# backend: google-distro-2
# systems: 'opensuse-15.5-64 opensuse-15.6-64 opensuse-tumbleweed-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-trusty
# backend: google
# systems: 'ubuntu-14.04-64'
# tasks: 'tests/smoke/ tests/main/canonical-livepatch tests/main/canonical-livepatch-14.04'
# rules: 'trusty'
# - group: ubuntu-xenial-bionic
# backend: google
# systems: 'ubuntu-16.04-64 ubuntu-18.04-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-focal-jammy
# backend: google
# systems: 'ubuntu-20.04-64 ubuntu-22.04-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-noble
# backend: google
# systems: 'ubuntu-24.04-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-no-lts
# backend: google
# systems: ''
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-daily
# backend: google
# systems: 'ubuntu-24.10-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-core-16
# backend: google-core
# systems: 'ubuntu-core-16-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-core-18
# backend: google-core
# systems: 'ubuntu-core-18-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-core-20
# backend: google-core
# systems: 'ubuntu-core-20-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-core-22
# backend: google-core
# systems: 'ubuntu-core-22-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-core-24
# backend: google-core
# systems: 'ubuntu-core-24-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-arm64
# backend: google-arm
# systems: 'ubuntu-20.04-arm-64 ubuntu-core-22-arm-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-secboot
# backend: google
# systems: 'ubuntu-secboot-20.04-64'
# tasks: 'tests/...'
# rules: 'main'
# - group: ubuntu-fips
# backend: google-pro
# systems: 'ubuntu-fips-22.04-64'
# tasks: 'tests/fips/...'
# rules: 'main'
# - group: nested-ubuntu-16.04
# backend: google-nested
# systems: 'ubuntu-16.04-64'
# tasks: 'tests/nested/...'
# rules: 'nested'
# - group: nested-ubuntu-18.04
# backend: google-nested
# systems: 'ubuntu-18.04-64'
# tasks: 'tests/nested/...'
# rules: 'nested'
# - group: nested-ubuntu-20.04
# backend: google-nested
# systems: 'ubuntu-20.04-64'
# tasks: 'tests/nested/...'
# rules: 'nested'
# - group: nested-ubuntu-22.04
# backend: google-nested
# systems: 'ubuntu-22.04-64'
# tasks: 'tests/nested/...'
# rules: 'nested'
# - group: nested-ubuntu-24.04
# backend: google-nested
# systems: 'ubuntu-24.04-64'
# tasks: 'tests/nested/...'
# rules: 'nested'