Skip to content

Commit

Permalink
added e2e tests workflow
Browse files Browse the repository at this point in the history
Signed-off-by: xbabalov <[email protected]>
  • Loading branch information
xbabalov committed Nov 1, 2024
1 parent 021fba0 commit b3fa25d
Showing 1 changed file with 93 additions and 1 deletion.
94 changes: 93 additions & 1 deletion .github/workflows/pr-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,96 @@ jobs:
run: yarn format:check

- name: Run unit tests
run: yarn test
run: yarn test

e2e-tests:
name: e2e tests smoke
runs-on: ubuntu-24.04
env:
SKIP_INSTALLATION: true
steps:
- uses: actions/checkout@v4
with:
path: podman-desktop-sandbox-ext

# Install nodejs
- uses: actions/setup-node@v4
with:
node-version: 20

# Checkout podman desktop
- uses: actions/checkout@v4
with:
repository: containers/podman-desktop
ref: main
path: podman-desktop

- name: Update podman
run: |
# ubuntu version from kubic repository to install podman we need (v5)
ubuntu_version='23.04'
sudo sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list"
curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/Release.key" | sudo apt-key add -
# install necessary dependencies for criu package which is not part of 23.04
sudo apt-get install -qq libprotobuf32t64 python3-protobuf libnet1
# install criu manually from static location
curl -sLO http://cz.archive.ubuntu.com/ubuntu/pool/universe/c/criu/criu_3.16.1-2_amd64.deb && sudo dpkg -i criu_3.16.1-2_amd64.deb
sudo apt-get update -qq
sudo apt-get -qq -y install podman || { echo "Start fallback steps for podman nightly installation from a static mirror" && \
sudo sh -c "echo 'deb http://ftp.lysator.liu.se/pub/opensuse/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list" && \
curl -L "http://ftp.lysator.liu.se/pub/opensuse/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/Release.key" | sudo apt-key add - && \
sudo apt-get update && \
sudo apt-get -y install podman; }
podman version
# Setup pnpm
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
package_json_file: ./podman-desktop/package.json

- name: Build Podman Desktop for E2E tests
working-directory: ./podman-desktop
run: |
pnpm install
pnpm test:e2e:build
- name: Revert unprivileged user namespace restrictions in Ubuntu 24.04
run: |
# allow unprivileged user namespace
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
- name: Ensure getting current HEAD version of the test framework
working-directory: ./podman-desktop-sandbox-ext
run: |
# workaround for https://github.com/containers/podman-desktop-extension-bootc/issues/712
version=$(npm view @podman-desktop/tests-playwright@next version)
echo "Version of @podman-desktop/tests-playwright to be used: $version"
jq --arg version "$version" '.devDependencies."@podman-desktop/tests-playwright" = $version' package.json > package.json_tmp && mv package.json_tmp package.json
- name: Execute yarn in Sandbox extension
working-directory: ./podman-desktop-sandbox-ext
run: yarn install

- name: Build Sandbox extension from container file
working-directory: ./podman-desktop-sandbox-ext
run: |
yarn build
podman build -t local_sandbox_image ./
CONTAINER_ID=$(podman create localhost/local_sandbox_image --entrypoint "")
podman export $CONTAINER_ID > /tmp/local_sandbox_image.tar
mkdir -p tests/playwright/output/sandbox-tests-pd/plugins
tar -xf /tmp/local_sandbox_image.tar -C tests/playwright/output/sandbox-tests-pd/plugins/
- name: Run E2E tests
working-directory: ./podman-desktop-sandbox-ext
env:
PODMAN_DESKTOP_ARGS: ${{ github.workspace }}/podman-desktop
run: yarn test:e2e

- uses: actions/upload-artifact@v4
if: always()
with:
name: e2e-tests
path: ./**/tests/**/output/

0 comments on commit b3fa25d

Please sign in to comment.