Skip to content

Merge pull request #910 from vaikas/clean-testing-part-1 #115

Merge pull request #910 from vaikas/clean-testing-part-1

Merge pull request #910 from vaikas/clean-testing-part-1 #115

name: Test melange test command
on:
pull_request:
push:
branches:
- 'main'
jobs:
build-melange:
name: Build melange and add to artifact cache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: '1.21'
check-latest: true
- name: build
run: |
make melange
- uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
with:
name: melange-${{ github.run_id }}
path: ${{ github.workspace }}/melange
retention-days: 1
test-packages:
name: Test packages
needs:
- build-melange
# TODO: Set up a larger runner for this.
runs-on: ubuntu-latest
# This is a list of packages which we want to test against.
# Feel free to add additional packages to this matrix which exercise
# Melange `test` in new ways (e.g. new pipelines, etc.)
# Each test file is of the form <package-name>-test.yaml and gets
# constructed from the package name.
strategy:
fail-fast: false
matrix:
package:
- php-8.2-msgpack
- py3-pandas
# The ones with -nopkg are packages which do not specify test
# packages, and they are added to the test environment by using flags.
# They make sure the flag `--test-package-append` works.
# We also do not specify the test package in the test file, so that
# we test that the main package gets correctly pulled from the file.
- php-8.2-msgpack-nopkg
- py3-pandas-nopkg
steps:
# Grab the melange we uploaded above, and install it.
- uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0
with:
name: melange-${{ github.run_id }}
path: ${{ github.workspace }}/.melange-dir
run-id: ${{ github.run_id }}
- run: |
sudo mv ${{ github.workspace }}/.melange-dir/melange /usr/bin/melange
sudo chmod a+x /usr/bin/melange
melange version
- run: |
sudo apt-get -y install bubblewrap
# Make sure we have our tests files here.
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Run without additional test packages.
# Any package ending with -nopkg will fail if we do not add the
# extra test packages to it, so test in a separate leg.
if: ${{ ! endsWith( matrix.package, '-nopkg' ) }}
run: |
testfile="${{ matrix.package }}-test.yaml"
echo "Testing $testfile"
melange test --arch x86_64 --source-dir ./e2e-tests/test-fixtures \
./e2e-tests/$testfile ${{ matrix.package }} \
--repository-append https://packages.wolfi.dev/os \
--keyring-append https://packages.wolfi.dev/os/wolfi-signing.rsa.pub
- name: Run with additional test packages (--test-package-append).
# Any package ending with -nopkg will need to have test packages
# added to it. Note that we do not add a package to test either, pull
# that from the test file.
if: endsWith( matrix.package, '-nopkg' )
run: |
testfile="${{ matrix.package }}-test.yaml"
echo "Testing $testfile"
melange test --arch x86_64 --source-dir ./e2e-tests/test-fixtures \
./e2e-tests/$testfile \
--repository-append https://packages.wolfi.dev/os \
--keyring-append https://packages.wolfi.dev/os/wolfi-signing.rsa.pub \
--test-package-append wolfi-base \
--test-package-append busybox \
--test-package-append python-3