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 :
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
5666jobs :
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