Skip to content

Commit f6d14fe

Browse files
committed
chore: update windows e2e workflow
Signed-off-by: Ondrej Dockal <odockal@redhat.com>
1 parent 806a35e commit f6d14fe

File tree

1 file changed

+83
-131
lines changed

1 file changed

+83
-131
lines changed

.github/workflows/sso-e2e-nightly-windows.yaml

Lines changed: 83 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ on:
2121
description: 'npm target to run tests'
2222
type: string
2323
required: true
24-
podman_remote_url:
25-
default: 'https://github.com/containers/podman/releases/download/v5.4.2/podman-5.4.2-setup.exe'
26-
description: 'podman latest released version exe'
24+
podman_version:
25+
default: 'latest'
26+
description: 'Podman version (use "latest" to auto-fetch latest release, or specify version like "v5.6.1")'
2727
type: string
2828
required: true
2929
podman_desktop_url:
@@ -52,27 +52,28 @@ on:
5252
description: 'Testing images versions, no spaces'
5353
type: 'string'
5454
required: true
55+
mapt_params:
56+
description: |
57+
**Create instance (leave empty to use repo secrets/variables)**
58+
59+
**Format:** IMAGE=xxx;VERSION_TAG=xxx;CPUS=xxx;MEMORY=xxx;EXCLUDED_REGIONS=xxx
60+
61+
**Example:**
62+
IMAGE=quay.io/redhat-developer/mapt;VERSION_TAG=v0.9.8;CPUS=8;MEMORY=32;EXCLUDED_REGIONS="westindia,centralindia,southindia,australiacentral,australiacentral2,australiaeast,australiasoutheast,southafricanorth,southafricawest"
63+
required: false
64+
type: string
5565

5666
jobs:
5767
windows:
5868
name: windows-${{ matrix.windows-version }}-${{ matrix.windows-featurepack }}
5969
runs-on: ubuntu-latest
60-
env:
61-
MAPT_VERSION: v0.8.2
62-
MAPT_IMAGE: quay.io/redhat-developer/mapt
6370
strategy:
6471
fail-fast: false
6572
matrix:
6673
windows-version: ['11']
67-
windows-featurepack: ['24h2-ent']
74+
windows-featurepack: ['25h2-ent']
6875

6976
steps:
70-
- name: Get Podman version used by Desktop
71-
run: |
72-
version=$(curl https://raw.githubusercontent.com/podman-desktop/podman-desktop/main/extensions/podman/packages/extension/src/podman5.json | jq -r '.version')
73-
echo "Default Podman Version from Podman Desktop: ${version}"
74-
echo "PD_PODMAN_VERSION=${version}" >> $GITHUB_ENV
75-
7677
- name: Get Latest Podman Desktop testing prerelease
7778
env:
7879
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -99,23 +100,29 @@ jobs:
99100
echo "Podman Desktop testing prerelease url: ${url}"
100101
echo "DEFAULT_PD_URL=${url}" >> $GITHUB_ENV
101102
103+
- name: Fetch latest Podman version
104+
id: fetch-podman
105+
uses: redhat-actions/podman-install/.github/actions/fetch-latest-podman-version-windows@6b757b792b67ec663765a4f2ca36226e12b2f4cd
106+
with:
107+
version_input: ${{ github.event.inputs.podman_version || 'latest' }}
108+
file_type: 'setup.exe'
109+
github_token: ${{ secrets.GITHUB_TOKEN }}
110+
102111
- name: Set the default env. variables
103112
env:
104113
DEFAULT_PD_REPO_OPTIONS: 'REPO=podman-desktop,FORK=podman-desktop,BRANCH=main'
105114
DEFAULT_NPM_TARGET: 'test:e2e'
106115
DEFAULT_ENV_VARS: 'TEST_PODMAN_MACHINE=true,AUTH_E2E_TESTS=true'
107116
DEFAULT_PODMAN_OPTIONS: 'INIT=1,START=1,ROOTFUL=1,NETWORKING=0'
108117
DEFAULT_PODMAN_PROVIDER: 'wsl'
109-
DEFAULT_VERSION: "${{ env.PD_PODMAN_VERSION || '5.4.2' }}"
110-
DEFAULT_URL: "https://github.com/containers/podman/releases/download/v$DEFAULT_VERSION/podman-$DEFAULT_VERSION-setup.exe"
111118
DEFAULT_EXT_REPO_OPTIONS: 'REPO=podman-desktop-redhat-account-ext,FORK=redhat-developer,BRANCH=main,TESTS=1'
112119
DEFAULT_IMAGES_VERSIONS: 'BUILDER="v0.0.3",PODMAN="v0.0.3",RUNNER="v0.0.3"'
113120
run: |
114121
echo "NPM_TARGET=${{ github.event.inputs.npm_target || env.DEFAULT_NPM_TARGET }}" >> $GITHUB_ENV
115122
echo "PODMAN_PROVIDER=${{ github.event.inputs.podman_provider || env.DEFAULT_PODMAN_PROVIDER }}" >> $GITHUB_ENV
116-
echo "PODMAN_URL=${{ github.event.inputs.podman_remote_url || env.DEFAULT_URL }}" >> $GITHUB_ENV
117123
echo "PD_URL=${{ github.event.inputs.podman_desktop_url || env.DEFAULT_PD_URL }}" >> $GITHUB_ENV
118124
echo "ENV_VARS=${{ github.event.inputs.env_vars || env.DEFAULT_ENV_VARS }}" >> $GITHUB_ENV
125+
echo "PODMAN_URL=${{ steps.fetch-podman.outputs.download_url }}" >> $GITHUB_ENV
119126
echo "${{ github.event.inputs.pd_repo_options || env.DEFAULT_PD_REPO_OPTIONS }}" | awk -F ',' \
120127
'{for (i=1; i<=NF; i++) {split($i, kv, "="); print "PD_"kv[1]"="kv[2]}}' >> $GITHUB_ENV
121128
echo "${{ github.event.inputs.podman_options || env.DEFAULT_PODMAN_OPTIONS }}" | awk -F ',' \
@@ -124,137 +131,82 @@ jobs:
124131
'{for (i=1; i<=NF; i++) {split($i, kv, "="); print "EXT_"kv[1]"="kv[2]}}' >> $GITHUB_ENV
125132
echo "${{ github.event.inputs.images_version || env.DEFAULT_IMAGES_VERSIONS }}" | awk -F ',' \
126133
'{for (i=1; i<=NF; i++) {split($i, kv, "="); print "PDE2E_"kv[1]"="kv[2]}}' >> $GITHUB_ENV
134+
135+
# For mapt_params, use repo variables directly if input is empty
136+
if [ -n "${{ github.event.inputs.mapt_params }}" ]; then
137+
mapt_params="${{ github.event.inputs.mapt_params }}"
138+
else
139+
mapt_params="IMAGE=${{ vars.MAPT_IMAGE }};VERSION_TAG=${{ vars.MAPT_VERSION_TAG }};CPUS=${{ vars.MAPT_CPUS }};MEMORY=${{ vars.MAPT_MEMORY }};EXCLUDED_REGIONS=\"${{ vars.MAPT_EXCLUDED_REGIONS }}\""
140+
fi
141+
echo "$mapt_params" | awk -F ';' '{for (i=1; i<=NF; i++) {split($i, kv, "="); print "MAPT_"kv[1]"="kv[2]}}' >> $GITHUB_ENV
142+
127143
128144
- name: Create instance
129-
run: |
130-
# Create instance
131-
podman run -d --name windows-create --rm \
132-
-v ${PWD}:/workspace:z \
133-
-e ARM_TENANT_ID=${{ secrets.ARM_TENANT_ID }} \
134-
-e ARM_SUBSCRIPTION_ID=${{ secrets.ARM_SUBSCRIPTION_ID }} \
135-
-e ARM_CLIENT_ID=${{ secrets.ARM_CLIENT_ID }} \
136-
-e ARM_CLIENT_SECRET='${{ secrets.ARM_CLIENT_SECRET }}' \
137-
${{ env.MAPT_IMAGE }}:${{ env.MAPT_VERSION }} azure \
138-
windows create \
139-
--project-name 'windows-desktop' \
140-
--backed-url 'file:///workspace' \
141-
--conn-details-output '/workspace' \
142-
--windows-version '${{ matrix.windows-version }}' \
143-
--windows-featurepack '${{ matrix.windows-featurepack }}' \
144-
--nested-virt \
145-
--cpus 4 \
146-
--memory 16 \
147-
--tags project=podman-desktop,source=github,org=${{github.repository_owner}},run=https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} \
148-
--spot \
149-
--spot-excluded-regions southafricawest,australiacentral2,switzerlandwest
150-
# Check logs
151-
podman logs -f windows-create
145+
uses: podman-desktop/e2e/.github/actions/create-instance@213a276952d746324895f63cea0b23083013990f
146+
with:
147+
mapt-image: ${{ env.MAPT_IMAGE || '' }}
148+
mapt-version: ${{ env.MAPT_VERSION_TAG || '' }}
149+
windows-version: ${{ matrix.windows-version }}
150+
windows-featurepack: ${{ matrix.windows-featurepack }}
151+
cpus: ${{ env.MAPT_CPUS || '' }}
152+
memory: ${{ env.MAPT_MEMORY || '' }}
153+
excluded-regions: ${{ env.MAPT_EXCLUDED_REGIONS || '' }}
154+
arm-tenant-id: ${{ secrets.ARM_TENANT_ID }}
155+
arm-subscription-id: ${{ secrets.ARM_SUBSCRIPTION_ID }}
156+
arm-client-id: ${{ secrets.ARM_CLIENT_ID }}
157+
arm-client-secret: ${{ secrets.ARM_CLIENT_SECRET }}
152158

153159
- name: Check instance system info
154-
run: |
155-
ssh -i id_rsa \
156-
-o StrictHostKeyChecking=no \
157-
-o UserKnownHostsFile=/dev/null \
158-
-o ServerAliveInterval=30 \
159-
-o ServerAliveCountMax=1200 \
160-
$(cat username)@$(cat host) "systeminfo"
160+
uses: podman-desktop/e2e/.github/actions/instance-system-info@3548105f45def129d5e3aaa5a3d922e09ac892d9
161161

162-
- name: Emulate X session
163-
run: |
164-
# use fake rdp to emulate an active x session
165-
podman run -d --name x-session \
166-
-e RDP_HOST=$(cat host) \
167-
-e RDP_USER=$(cat username) \
168-
-e RDP_PASSWORD=$(cat userpassword) \
169-
quay.io/rhqp/frdp:v0.0.1
170-
# Wait until the x session has been created
171-
podman wait --condition running x-session
172-
# Check logs for the x session
173-
podman logs x-session
162+
- name: Emulate X session
163+
uses: podman-desktop/e2e/.github/actions/emulate-x-session@3548105f45def129d5e3aaa5a3d922e09ac892d9
174164

175-
- name: Download Podman nightly, do not initialize and start
176-
run: |
177-
podman run --rm -d --name pde2e-podman-run \
178-
-e TARGET_HOST=$(cat host) \
179-
-e TARGET_HOST_USERNAME=$(cat username) \
180-
-e TARGET_HOST_KEY_PATH=/data/id_rsa \
181-
-e TARGET_FOLDER=pd-e2e \
182-
-e TARGET_CLEANUP=false \
183-
-e TARGET_RESULTS=results \
184-
-e OUTPUT_FOLDER=/data \
185-
-e DEBUG=true \
186-
-v $PWD:/data:z \
187-
quay.io/odockal/pde2e-podman:${{ env.PDE2E_PODMAN }}-windows \
188-
pd-e2e/podman.ps1 \
189-
-downloadUrl ${{ env.PODMAN_URL }} \
190-
-targetFolder pd-e2e \
191-
-resultsFolder results \
192-
-podmanProvider ${{ env.PODMAN_PROVIDER }} \
193-
-initialize 0 \
194-
-rootful 0 \
195-
-start 0 \
196-
-installWSL 0
197-
# check logs
198-
podman logs -f pde2e-podman-run
165+
- name: Download Podman, do not initialize
166+
uses: podman-desktop/e2e/.github/actions/download-podman-nightly@952cafee20ca82b1ce48b29c848bac1c31062245
167+
with:
168+
podman-image-tag: ${{ env.PDE2E_PODMAN }}
169+
podman-download-url: ${{ env.PODMAN_URL }}
199170

200-
- name: Run Podman Desktop Playwright E2E tests
171+
- name: Set env secrets
201172
env:
202173
DVLPR_USERNAME: ${{ secrets.DVLPR_USERNAME }}
203174
DVLPR_PASSWORD: ${{ secrets.DVLPR_PASSWORD }}
204175
run: |
205176
echo "DVLPR_USERNAME=${DVLPR_USERNAME}" >> secrets.txt
206177
echo "DVLPR_PASSWORD=${DVLPR_PASSWORD}" >> secrets.txt
207-
podman run -d --name pde2e-runner-run \
208-
-e TARGET_HOST=$(cat host) \
209-
-e TARGET_HOST_USERNAME=$(cat username) \
210-
-e TARGET_HOST_KEY_PATH=/data/id_rsa \
211-
-e TARGET_FOLDER=pd-e2e \
212-
-e TARGET_RESULTS=results \
213-
-e TARGET_CLEANUP=false \
214-
-e OUTPUT_FOLDER=/data \
215-
-e DEBUG=true \
216-
-v $PWD:/data:z \
217-
-v $PWD/secrets.txt:/opt/pde2e-runner/secrets.txt:z \
218-
quay.io/odockal/pde2e-runner:${{ env.PDE2E_RUNNER }}-windows \
219-
pd-e2e/runner.ps1 \
220-
-targetFolder pd-e2e \
221-
-resultsFolder results \
222-
-podmanPath $(cat results/podman-location.log) \
223-
-pdUrl ${{ env.PD_URL }} \
224-
-fork ${{ env.PD_FORK }} \
225-
-repo ${{ env.PD_REPO }} \
226-
-branch ${{ env.PD_BRANCH }} \
227-
-extRepo ${{ env.EXT_REPO }} \
228-
-extFork ${{ env.EXT_FORK }} \
229-
-extBranch ${{ env.EXT_BRANCH }} \
230-
-extTests ${{ env.EXT_TESTS }} \
231-
-npmTarget ${{ env.NPM_TARGET }} \
232-
-initialize ${{ env.PODMAN_INIT }} \
233-
-rootful ${{ env.PODMAN_ROOTFUL }} \
234-
-start ${{ env.PODMAN_START }} \
235-
-userNetworking ${{ env.PODMAN_NETWORKING }} \
236-
-podmanProvider ${{ env.PODMAN_PROVIDER }} \
237-
-secretFile secrets.txt \
238-
-envVars ${{ env.ENV_VARS }}
239-
# check logs
240-
podman logs -f pde2e-runner-run
178+
179+
- name: Run Podman Desktop Playwright E2E tests
180+
uses: podman-desktop/e2e/.github/actions/run-playwright-test@db37fcfe19c2265b4840460fa5fed1f130d9a634
181+
with:
182+
pde2e-runner-tag: ${{ env.PDE2E_RUNNER }}
183+
podman-desktop-path: true
184+
fork-repo: ${{ env.PD_FORK }}
185+
branch-name: ${{ env.PD_BRANCH }}
186+
ext-repo: ${{ env.EXT_REPO }}
187+
ext-fork: ${{ env.EXT_FORK }}
188+
ext-branch: ${{ env.EXT_BRANCH }}
189+
ext-tests: ${{ env.EXT_TESTS }}
190+
npm-target: ${{ env.NPM_TARGET }}
191+
podman-init: ${{ env.PODMAN_INIT }}
192+
podman-start: ${{ env.PODMAN_START }}
193+
rootful: ${{ env.PODMAN_ROOTFUL }}
194+
user-networking: ${{ env.PODMAN_NETWORKING }}
195+
podman-provider: ${{ env.PODMAN_PROVIDER }}
196+
podman-desktop-url: ${{ env.PD_URL }}
197+
env-vars: ${{ env.ENV_VARS }}
198+
ci-bot-token: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }}
241199

242200
- name: Destroy instance
243201
if: always()
244-
run: |
245-
# Destroy instance
246-
podman run -d --name windows-destroy --rm \
247-
-v ${PWD}:/workspace:z \
248-
-e ARM_TENANT_ID=${{ secrets.ARM_TENANT_ID }} \
249-
-e ARM_SUBSCRIPTION_ID=${{ secrets.ARM_SUBSCRIPTION_ID }} \
250-
-e ARM_CLIENT_ID=${{ secrets.ARM_CLIENT_ID }} \
251-
-e ARM_CLIENT_SECRET='${{ secrets.ARM_CLIENT_SECRET }}' \
252-
${{ env.MAPT_IMAGE }}:${{ env.MAPT_VERSION }} azure \
253-
windows destroy \
254-
--project-name 'windows-desktop' \
255-
--backed-url 'file:///workspace'
256-
# Check logs
257-
podman logs -f windows-destroy
202+
uses: podman-desktop/e2e/.github/actions/destroy-instance@36e440f2ac18193214f4ffa8f7f1c4c0cb8c9446
203+
with:
204+
mapt-image: ${{ env.MAPT_IMAGE }}
205+
mapt-version: ${{ env.MAPT_VERSION_TAG }}
206+
arm-tenant-id: ${{ secrets.ARM_TENANT_ID }}
207+
arm-subscription-id: ${{ secrets.ARM_SUBSCRIPTION_ID }}
208+
arm-client-id: ${{ secrets.ARM_CLIENT_ID }}
209+
arm-client-secret: ${{ secrets.ARM_CLIENT_SECRET }}
258210

259211
- name: Publish Test Report
260212
uses: mikepenz/action-junit-report@v6

0 commit comments

Comments
 (0)