diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6041fe474b..d613328312 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -139,6 +139,7 @@ jobs: needs: [prepare] with: ignoreLowerCoverage: ${{ github.event.inputs.ignoreLowerCoverage == 'true' }} + skipSelenium: true targetBaseVersion: ${{ needs.prepare.outputs.base_image_version }} # ----------------------------------------------------------------- @@ -157,6 +158,7 @@ jobs: PKG_VERSION: ${{needs.prepare.outputs.pkg_version}} FROM_TAG: ${{needs.prepare.outputs.from_tag}} TO_TAG: ${{needs.prepare.outputs.to_tag}} + TARGET_BASE: ${{needs.prepare.outputs.base_image_version}} steps: - uses: actions/checkout@v4 @@ -166,13 +168,15 @@ jobs: - name: Launch build VM id: azlaunch + timeout-minutes: 10 run: | echo "Authenticating to Azure..." az login --service-principal -u ${{ secrets.AZ_BUILD_APP_ID }} -p ${{ secrets.AZ_BUILD_PWD }} --tenant ${{ secrets.AZ_BUILD_TENANT_ID }} + echo "Creating VM..." vminfo=$(az vm create \ --resource-group ghaDatatracker \ - --name tmpGhaBuildVM \ + --name tmpGhaBuildVM-${{ github.run_number }} \ --image Ubuntu2204 \ --admin-username azureuser \ --generate-ssh-keys \ @@ -183,11 +187,19 @@ jobs: --os-disk-size-gb 100 \ --eviction-policy Delete \ --nic-delete-option Delete \ + --os-disk-delete-option Delete \ --output tsv \ --query "publicIpAddress") echo "ipaddr=$vminfo" >> "$GITHUB_OUTPUT" echo "VM Public IP: $vminfo" cat ~/.ssh/id_rsa > ${{ github.workspace }}/prvkey.key + + echo "Fetching SSH host public keys..." + until ssh-keyscan -t rsa $vminfo 2> /dev/null + do + echo "Will try again in 5 seconds..." + sleep 5 + done ssh-keyscan -t rsa $vminfo >> ~/.ssh/known_hosts - name: Remote SSH into Build VM @@ -207,7 +219,7 @@ jobs: SKIP_TESTS: ${{ github.event.inputs.skiptests }} DEBIAN_FRONTEND: noninteractive BROWSERSLIST_IGNORE_OLD_DATA: 1 - TARGETBASE: ${{ needs.prepare.outputs.base_image_version }} + TARGET_BASE: ${{ env.TARGET_BASE }} with: host: ${{ steps.azlaunch.outputs.ipaddr }} port: 22 @@ -318,7 +330,8 @@ jobs: echo "==========================================================================" echo "Collecting statics..." echo "==========================================================================" - sudo docker run --rm --name collectstatics -v $(pwd):/workspace ghcr.io/ietf-tools/datatracker-app-base:$TARGETBASE sh dev/build/collectstatics.sh + echo "Using ghcr.io/ietf-tools/datatracker-app-base:${{ env.TARGET_BASE }}" + sudo docker run --rm --name collectstatics -v $(pwd):/workspace ghcr.io/ietf-tools/datatracker-app-base:${{ env.TARGET_BASE }} sh dev/build/collectstatics.sh echo "Pushing statics..." cd static aws s3 sync . s3://static/dt/$PKG_VERSION --only-show-errors @@ -353,29 +366,29 @@ jobs: shell: pwsh run: | echo "Destroying VM..." - az vm delete -g ghaDatatracker -n tmpGhaBuildVM --yes --force-deletion true - - $resourceOrderRemovalOrder = [ordered]@{ - "Microsoft.Compute/virtualMachines" = 0 - "Microsoft.Compute/disks" = 1 - "Microsoft.Network/networkInterfaces" = 2 - "Microsoft.Network/publicIpAddresses" = 3 - "Microsoft.Network/networkSecurityGroups" = 4 - "Microsoft.Network/virtualNetworks" = 5 - } - echo "Fetching remaining resources..." - $resources = az resource list --resource-group ghaDatatracker | ConvertFrom-Json - - $orderedResources = $resources - | Sort-Object @{ - Expression = {$resourceOrderRemovalOrder[$_.type]} - Descending = $False - } - - echo "Deleting remaining resources..." - $orderedResources | ForEach-Object { - az resource delete --resource-group ghaDatatracker --ids $_.id --verbose - } + az vm delete -g ghaDatatracker -n tmpGhaBuildVM-${{ github.run_number }} --yes --force-deletion true + + # $resourceOrderRemovalOrder = [ordered]@{ + # "Microsoft.Compute/virtualMachines" = 0 + # "Microsoft.Compute/disks" = 1 + # "Microsoft.Network/networkInterfaces" = 2 + # "Microsoft.Network/publicIpAddresses" = 3 + # "Microsoft.Network/networkSecurityGroups" = 4 + # "Microsoft.Network/virtualNetworks" = 5 + # } + # echo "Fetching remaining resources..." + # $resources = az resource list --resource-group ghaDatatracker | ConvertFrom-Json + + # $orderedResources = $resources + # | Sort-Object @{ + # Expression = {$resourceOrderRemovalOrder[$_.type]} + # Descending = $False + # } + + # echo "Deleting remaining resources..." + # $orderedResources | ForEach-Object { + # az resource delete --resource-group ghaDatatracker --ids $_.id --verbose + # } echo "Logout from Azure..." az logout diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4e0b31fb14..7ad3c82364 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,6 +8,11 @@ on: default: false required: true type: boolean + skipSelenium: + description: 'Skip Selenium Tests' + default: false + required: true + type: boolean targetBaseVersion: description: 'Target Base Image Version' default: latest @@ -47,6 +52,10 @@ jobs: echo "Model changes without migrations found." exit 1 fi + if [[ "x${{ inputs.skipSelenium }}" == "xtrue" ]]; then + echo "Disable selenium tests..." + rm /usr/bin/geckodriver + fi echo "Running tests..." if [[ "x${{ inputs.ignoreLowerCoverage }}" == "xtrue" ]]; then echo "Lower coverage failures will be ignored."