From c4ea6b131d8a50891a2c6b25c7ac6f3da6715b59 Mon Sep 17 00:00:00 2001 From: Martin Kolman Date: Mon, 28 Aug 2023 17:28:04 +0200 Subject: [PATCH] Set up the fedora-39 branch --- .branch-variables.yml | 2 +- .github/workflows/build-boot-iso.yml | 213 ----------- .../workflows/container-autoupdate-eln.yml | 29 -- .../workflows/container-autoupdate-fedora.yml | 28 -- .../workflows/container-rebuild-action.yml | 105 ------ .github/workflows/kickstart-tests.yml | 348 ------------------ .github/workflows/push-tests.yml | 45 --- .github/workflows/release-automatically.yml | 6 - .github/workflows/stale-pull-requests.yml | 33 -- .github/workflows/tests.yml | 18 +- .github/workflows/try-release-daily.yml | 80 ---- .github/workflows/webui-periodic.yml | 168 --------- .github/workflows/webui-tests.yml | 291 --------------- .packit.yml | 20 +- branch-config.mk | 17 +- dracut/kickstart_version.py | 2 +- po/l10n-config.mk | 2 +- pyanaconda/core/kickstart/version.py | 2 +- 18 files changed, 22 insertions(+), 1387 deletions(-) delete mode 100644 .github/workflows/build-boot-iso.yml delete mode 100644 .github/workflows/container-autoupdate-eln.yml delete mode 100644 .github/workflows/container-autoupdate-fedora.yml delete mode 100644 .github/workflows/container-rebuild-action.yml delete mode 100644 .github/workflows/kickstart-tests.yml delete mode 100644 .github/workflows/push-tests.yml delete mode 100644 .github/workflows/stale-pull-requests.yml delete mode 100644 .github/workflows/try-release-daily.yml delete mode 100644 .github/workflows/webui-periodic.yml delete mode 100644 .github/workflows/webui-tests.yml diff --git a/.branch-variables.yml b/.branch-variables.yml index 143a332c917..9bffd7b68f5 100644 --- a/.branch-variables.yml +++ b/.branch-variables.yml @@ -7,7 +7,7 @@ # Follow "type hints" below or be sad. The choice is yours. distro_name: "fedora" # "fedora" or "rhel" -distro_release: "rawhide" # "rawhide" or a number without quotation marks +distro_release: 39 # "rawhide" or a number without quotation marks # The following only applies for rawhide. branched_fedora_version: # number without quotation marks, or nothing if CI should not run for branched Fedora diff --git a/.github/workflows/build-boot-iso.yml b/.github/workflows/build-boot-iso.yml deleted file mode 100644 index 22dc3556dac..00000000000 --- a/.github/workflows/build-boot-iso.yml +++ /dev/null @@ -1,213 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: build-boot-iso.yml.j2 - -# Build a boot.iso from a PR triggered by a "/boot-iso" comment or manually. -# You can use the --webui option to build a webui boot.iso instead - -name: Build boot.iso -on: - issue_comment: - types: [created] - # be able to start this action manually from a actions tab when needed - workflow_dispatch: - -permissions: - contents: read - statuses: write - pull-requests: write - -jobs: - pr-info: - if: github.event_name == 'workflow_dispatch' || startsWith(github.event.comment.body, '/boot-iso') - runs-on: ubuntu-latest - steps: - - name: Query comment author repository permissions - if: github.event_name != 'workflow_dispatch' - uses: octokit/request-action@v2.x - id: user_permission - with: - route: GET /repos/${{ github.repository }}/collaborators/${{ github.event.sender.login }}/permission - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # restrict this workflow to users with admin or write permission for the repository - # see https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#get-repository-permissions-for-a-user - # store output if user is allowed in allowed_user job output so it has to be checked in downstream job - - name: Check if user does have correct permissions - if: github.event_name != 'workflow_dispatch' && contains('admin write', fromJson(steps.user_permission.outputs.data).permission) - id: check_user_perm - run: | - echo "User '${{ github.event.sender.login }}' has permission '${{ fromJson(steps.user_permission.outputs.data).permission }}' allowed values: 'admin', 'write'" - echo "allowed_user=true" >> $GITHUB_OUTPUT - - - name: Get information for pull request - if: github.event_name != 'workflow_dispatch' - uses: octokit/request-action@v2.x - id: pr_api - with: - route: GET /repos/${{ github.repository }}/pulls/${{ github.event.issue.number }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Parse arguments - id: parse_args - # Do not use comment body directly in the shell command to avoid possible code injection. - env: - BODY: ${{ github.event.comment.body }} - run: | - # extract first line and cut out the "/boot-iso" first word - ARGS=$(echo "$BODY" | sed -n '1 s/^[^ ]* *//p' | sed 's/[[:space:]]*$//') - echo "arguments are: $ARGS" - echo "args=${ARGS}" >> $GITHUB_OUTPUT - - - name: Construct image description - id: image_description - run: | - set -eux - if [ "${{ github.event_name }}" = "workflow_dispatch" ] ; then - # manual run from actions page - branch_name="$GITHUB_REF_NAME" - sha="$GITHUB_SHA" - echo "image_description=$branch_name-$sha" >> $GITHUB_OUTPUT - else - # comment on PR - pr_num="${{ github.event.issue.number }}" - sha="${{ steps.pr_api.outcome == 'success' && fromJson(steps.pr_api.outputs.data).head.sha }}" - echo "image_description=pr$pr_num-$sha" >> $GITHUB_OUTPUT - fi - - - name: Mark comment as seen - if: github.event_name != 'workflow_dispatch' - # https://docs.github.com/en/rest/reactions/reactions?apiVersion=2022-11-28#create-reaction-for-an-issue-comment - env: - GH_TOKEN: ${{ github.token }} - run: | - gh api \ - --method POST \ - -H "Accept: application/vnd.github+json" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - "/repos/$GITHUB_REPOSITORY/issues/comments/${{ github.event.comment.id }}/reactions" \ - -f content='eyes' - - - name: Set outputs - id: set_outputs - run: | - set -eux - - if [ ${{ github.event_name }} == 'workflow_dispatch' ]; then - echo "allowed_user=true" >> $GITHUB_OUTPUT - echo "sha=$GITHUB_SHA" >> $GITHUB_OUTPUT - else - echo "allowed_user=${{ steps.check_user_perm.outcome == 'success' && steps.check_user_perm.outputs.allowed_user }}" >> $GITHUB_OUTPUT - echo "sha=${{ steps.pr_api.outcome == 'success' && fromJson(steps.pr_api.outputs.data).head.sha }}" >> $GITHUB_OUTPUT - fi - - outputs: - allowed_user: ${{ steps.set_outputs.outputs.allowed_user }} - sha: ${{ steps.set_outputs.outputs.sha }} - args: ${{ steps.parse_args.outputs.args }} - image_description: ${{ steps.image_description.outputs.image_description }} - - run: - needs: pr-info - # only do this for Fedora for now; once we have RHEL 8/9 boot.iso builds working, also support these - if: needs.pr-info.outputs.allowed_user == 'true' - runs-on: [self-hosted, kstest] - timeout-minutes: 300 - env: - STATUS_NAME: boot-iso - CONTAINER_TAG: 'lorax' - ISO_BUILD_CONTAINER_NAME: 'quay.io/rhinstaller/anaconda-iso-creator' - steps: - # we post statuses manually as this does not run from a pull_request event - # https://developer.github.com/v3/repos/statuses/#create-a-status - - name: Create in-progress status - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - state: pending - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Clone repository - uses: actions/checkout@v3 - with: - ref: ${{ needs.pr-info.outputs.sha }} - fetch-depth: 0 - - - name: Build anaconda-iso-creator container image - run: | - # set static tag to avoid complications when looking what tag is used - sudo make -f ./Makefile.am anaconda-iso-creator-build CI_TAG=$CONTAINER_TAG - - - name: Build anaconda-rpm container (for RPM build) - run: | - # set static tag to avoid complications when looking what tag is used - make -f ./Makefile.am anaconda-rpm-build CI_TAG=$CONTAINER_TAG - - - name: Build Anaconda RPM files - run: | - # output of the build will be stored in ./result/build/01-rpm-build/*.rpm - make -f ./Makefile.am container-rpms-scratch CI_TAG=$CONTAINER_TAG - mkdir -p ./anaconda_rpms/ - cp -av ./result/build/01-rpm-build/*.rpm ./anaconda_rpms/ - - - name: Build the boot.iso - run: | - mkdir -p images - if [[ "${{ needs.pr-info.outputs.args }}" == *"--webui"* ]] ; then - WEBUI_OPTIONAL_ARG="--entrypoint /lorax-build-webui" - fi - # /var/tmp tmpfs speeds up lorax and avoids https://bugzilla.redhat.com/show_bug.cgi?id=1906364 - sudo podman run -i --rm --privileged \ - --tmpfs /var/tmp:rw,mode=1777 \ - -v `pwd`/anaconda_rpms:/anaconda-rpms:ro \ - -v `pwd`/images:/images:z \ - $WEBUI_OPTIONAL_ARG \ - $ISO_BUILD_CONTAINER_NAME:$CONTAINER_TAG - mv images/boot.iso "images/${{ needs.pr-info.outputs.image_description }}-boot.iso" - - - name: Collect logs - if: always() - uses: actions/upload-artifact@v3 - with: - name: 'logs' - path: | - images/*.log - - - name: Upload image - uses: actions/upload-artifact@v3 - with: - name: image ${{ needs.pr-info.outputs.image_description }} - path: | - images/*.iso - - - name: Add comment with link to PR - if: github.event_name != 'workflow_dispatch' - env: - GH_TOKEN: ${{ github.token }} - run: | - sha="${{ needs.pr-info.outputs.sha }}" - url="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" - echo -n "\`boot.iso\` built successfully based on commit $sha. " >> comment.txt - echo -e "Download it from the bottom of the [job status page]($url).\n" >> comment.txt - echo "Comment to be posted:" - cat comment.txt - gh pr comment ${{ github.event.issue.number }} -F comment.txt - - - name: Set result status - if: always() - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - state: ${{ job.status }} - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/container-autoupdate-eln.yml b/.github/workflows/container-autoupdate-eln.yml deleted file mode 100644 index 6f70e65b3ad..00000000000 --- a/.github/workflows/container-autoupdate-eln.yml +++ /dev/null @@ -1,29 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: container-autoupdate-eln.yml.j2 - -# a smaller sibling of the Fedora refresh; split to provide cleaner statuses -name: Refresh ELN container images -on: - schedule: - - cron: 0 0 * * * - # be able to start this action manually from a actions tab when needed - workflow_dispatch: - -permissions: - contents: read - -jobs: - - eln: - # Don't run scheduled workflows on forks. - if: github.event_name != 'schedule' || github.repository == 'rhinstaller/anaconda' - uses: ./.github/workflows/container-rebuild-action.yml - secrets: inherit - with: - container-tag: eln - branch: master - base-container: 'quay.io/fedoraci/fedora:eln-x86_64' diff --git a/.github/workflows/container-autoupdate-fedora.yml b/.github/workflows/container-autoupdate-fedora.yml deleted file mode 100644 index 22a87677f29..00000000000 --- a/.github/workflows/container-autoupdate-fedora.yml +++ /dev/null @@ -1,28 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: container-autoupdate-fedora.yml.j2 - -name: Refresh Fedora container images -on: - schedule: - - cron: 0 0 * * * - # be able to start this action manually from a actions tab when needed - workflow_dispatch: - -permissions: - contents: read - -jobs: - - master: - # Don't run scheduled workflows on forks. - if: github.event_name != 'schedule' || github.repository == 'rhinstaller/anaconda' - uses: ./.github/workflows/container-rebuild-action.yml - secrets: inherit - with: - container-tag: master - branch: master - diff --git a/.github/workflows/container-rebuild-action.yml b/.github/workflows/container-rebuild-action.yml deleted file mode 100644 index f8a30528a34..00000000000 --- a/.github/workflows/container-rebuild-action.yml +++ /dev/null @@ -1,105 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: container-rebuild-action.yml.j2 - -name: Rebuild container images -# Rebuilds both ci and rpm container images for a given "target". Currently known targets: -# - master -# - eln -# - fedora-NN -# -# Image is: -# - built from the repo at ref , -# - based on the right container according to branch settings, or optionally on if set, -# - tagged as quay.io/rhinstaller/anaconda-{ci|rpm}:. -# -# See also inputs below. - -# Reusable workflow, does not run on its own. Typically, use in an action this way: -# jobs: -# foo: -# uses: ./.github/workflows/container-rebuild-action.yml -# secrets: inherit -# with: -# container-tag: foo -# branch: foo - -on: - workflow_call: - inputs: - container-tag: - required: true - type: string - branch: - required: true - type: string - base-container: - required: false - type: string - # secrets consumed: QUAY_USERNAME, QUAY_PASSWORD - # these are provided by using the quay.io environment below - -permissions: - contents: read - -jobs: - refresh-container: - name: Refresh anaconda container - runs-on: ubuntu-20.04 - environment: quay.io - strategy: - fail-fast: false - matrix: - container-type: ['ci', 'rpm'] - env: - CI_TAG: '${{ inputs.container-tag }}' - timeout-minutes: 60 - steps: - - name: Checkout anaconda repository - uses: actions/checkout@v3 - with: - ref: ${{ inputs.branch }} - - - name: Build anaconda-${{ matrix.container-type }} container - run: | - BASE_CONTAINER=${{ inputs.base-container }} - make -f Makefile.am anaconda-${{ matrix.container-type }}-build ${BASE_CONTAINER:+BASE_CONTAINER=}${BASE_CONTAINER:-} - - - name: Run tests in anaconda-ci container - if: matrix.container-type == 'ci' - run: | - # put the log in the output, where it's easy to read and link to - make -f Makefile.am container-ci || { cat test-logs/test-suite.log; exit 1; } - - - name: Run tests in anaconda-rpm container - if: matrix.container-type == 'rpm' - run: | - # put the log in the output, where it's easy to read and link to - make -f Makefile.am container-rpm-test || { cat test-logs/test-suite.log; exit 1; } - - - name: Upload test and coverage logs from local testing - if: always() - uses: actions/upload-artifact@v3 - with: - name: ${{ inputs.container-tag }}-${{ matrix.container-type }}-logs - path: | - test-logs/test-suite.log - test-logs/unit_tests.log - test-logs/pylint/runpylint*.log - test-logs/coverage-*.log - - - name: Login to container registry - run: podman login -u ${{ secrets.QUAY_USERNAME }} -p ${{ secrets.QUAY_PASSWORD }} quay.io - - # we can hardcode the path to the image here because this will be executed only for master image - - name: Add latest tag for master container - if: ${{ inputs.container-tag == 'master' }} - run: | - podman tag quay.io/rhinstaller/anaconda-${{ matrix.container-type }}:master quay.io/rhinstaller/anaconda-${{ matrix.container-type }}:latest - CI_TAG=latest make -f Makefile.am anaconda-${{ matrix.container-type }}-push - - - name: Push container to registry - run: make -f Makefile.am anaconda-${{ matrix.container-type }}-push diff --git a/.github/workflows/kickstart-tests.yml b/.github/workflows/kickstart-tests.yml deleted file mode 100644 index fa7220fce2c..00000000000 --- a/.github/workflows/kickstart-tests.yml +++ /dev/null @@ -1,348 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: kickstart-tests.yml.j2 - -# Run kickstart tests in a PR triggered by a "/kickstart-test " comment from an organization member. -name: kickstart-tests -on: - issue_comment: - types: [created] - -permissions: - contents: read - statuses: write - -jobs: - pr-info: - if: startsWith(github.event.comment.body, '/kickstart-test') - runs-on: ubuntu-latest - steps: - - name: Query comment author repository permissions - uses: octokit/request-action@v2.x - id: user_permission - with: - route: GET /repos/${{ github.repository }}/collaborators/${{ github.event.sender.login }}/permission - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # restrict running of tests to users with admin or write permission for the repository - # see https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#get-repository-permissions-for-a-user - # store output if user is allowed in allowed_user job output so it has to be checked in downstream job - - name: Check if user does have correct permissions - if: contains('admin write', fromJson(steps.user_permission.outputs.data).permission) - id: check_user_perm - run: | - echo "User '${{ github.event.sender.login }}' has permission '${{ fromJson(steps.user_permission.outputs.data).permission }}' allowed values: 'admin', 'write'" - echo "allowed_user=true" >> $GITHUB_OUTPUT - - - name: Get information for pull request - uses: octokit/request-action@v2.x - id: pr_api - with: - route: GET /repos/${{ github.repository }}/pulls/${{ github.event.issue.number }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Parse launch arguments - id: parse_launch_args - # Do not use comment body directly in the shell command to avoid possible code injection. - env: - BODY: ${{ github.event.comment.body }} - run: | - # extract first line and cut out the "/kickstart-tests" first word - LAUNCH_ARGS=$(echo "$BODY" | sed -n '1 s/^[^ ]* *//p' | sed 's/[[:space:]]*$//') - echo "launch arguments are: $LAUNCH_ARGS" - echo "launch_args=${LAUNCH_ARGS}" >> $GITHUB_OUTPUT - - - name: Set KS test arguments - id: ks_test_args - run: | - set -eux - TARGET_BRANCH="${{ fromJson(steps.pr_api.outputs.data).base.ref }}" - - if [ "$TARGET_BRANCH" == "master" ]; then - echo "skip_tests=skip-on-fedora" >> $GITHUB_OUTPUT - echo "platform=fedora_rawhide" >> $GITHUB_OUTPUT - elif echo "$TARGET_BRANCH" | grep -qE "fedora-[[:digit:]]+$"; then - echo "skip_tests=skip-on-fedora" >> $GITHUB_OUTPUT - echo "platform=fedora_rawhide" >> $GITHUB_OUTPUT - elif echo "$TARGET_BRANCH" | grep -qE "rhel-8(\.[[:digit:]]+)?$"; then - echo "skip_tests=skip-on-rhel,skip-on-rhel-8" >> $GITHUB_OUTPUT - echo "platform=rhel8" >> $GITHUB_OUTPUT - elif echo "$TARGET_BRANCH" | grep -qE "rhel-9(\.[[:digit:]]+)?$"; then - echo "skip_tests=skip-on-rhel,skip-on-rhel-9" >> $GITHUB_OUTPUT - echo "platform=rhel9" >> $GITHUB_OUTPUT - else - echo "Branch $TARGET_BRANCH is not supported by kickstart tests yet!" - exit 1 - fi - - outputs: - allowed_user: ${{ steps.check_user_perm.outputs.allowed_user }} - base_ref: ${{ fromJson(steps.pr_api.outputs.data).base.ref }} - sha: ${{ fromJson(steps.pr_api.outputs.data).head.sha }} - launch_args: ${{ steps.parse_launch_args.outputs.launch_args }} - skip_tests: ${{ steps.ks_test_args.outputs.skip_tests }} - platform: ${{ steps.ks_test_args.outputs.platform }} - - run: - needs: pr-info - # only do this for Fedora for now; once we have RHEL 8/9 boot.iso builds working, also support these - if: needs.pr-info.outputs.allowed_user == 'true' && needs.pr-info.outputs.launch_args != '' && ! contains(github.event.comment.body, '--waive') - runs-on: [self-hosted, kstest] - timeout-minutes: 300 - env: - STATUS_NAME: kickstart-test - TARGET_BRANCH: ${{ needs.pr-info.outputs.base_ref }} - CONTAINER_TAG: 'lorax' - ISO_BUILD_CONTAINER_NAME: 'quay.io/rhinstaller/anaconda-iso-creator' - RPM_BUILD_CONTAINER_NAME: 'quay.io/rhinstaller/anaconda-rpm' - SKIP_KS_TESTS: ${{ needs.pr-info.outputs.skip_tests }} - TEST_JOBS: 16 - steps: - # we post statuses manually as this does not run from a pull_request event - # https://developer.github.com/v3/repos/statuses/#create-a-status - - name: Create in-progress status - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'gathering repositories [${{ runner.name }}]' - state: pending - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # self-hosted runners don't do this automatically; also useful to keep stuff around for debugging - # need to run sudo as the launch script and the container create root/other user owned files - - name: Clean up previous run - run: | - sudo podman ps -q --all --filter='ancestor=kstest-runner' | xargs -tr sudo podman rm -f - sudo podman volume rm --all || true - sudo rm -rf * .git - - - name: Clone repository - uses: actions/checkout@v3 - with: - ref: ${{ needs.pr-info.outputs.sha }} - fetch-depth: 0 - path: anaconda - - - name: Rebase to current ${{ env.TARGET_BRANCH }} - working-directory: ./anaconda - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git log --oneline -1 origin/${{ env.TARGET_BRANCH }} - git rebase origin/${{ env.TARGET_BRANCH }} - - - name: Check out kickstart-tests - uses: actions/checkout@v3 - with: - repository: rhinstaller/kickstart-tests - path: kickstart-tests - - - name: Generate test cases - working-directory: ./kickstart-tests - run: scripts/generate-testcases.py -t ./testlib/test_cases/kstest-template.tc.yaml.j2 . -o ./testlib/test_cases - - - name: Clone Permian repository - uses: actions/checkout@v3 - with: - repository: rhinstaller/permian - path: permian - ref: main - - - name: Clone tplib repository - uses: actions/checkout@v3 - with: - repository: rhinstaller/tplib - path: tplib - - - name: Ensure http proxy is running - run: sudo kickstart-tests/containers/squid.sh start - - # This is really fast, but does not catch file removals or dracut changes - # maybe this becomes opt-in via a magic comment for efficiency reasons? - # if you use this, add `--updates ../updates.img` to the launch command line below - #- name: Build updates.img - # run: | - # scripts/makeupdates - # gzip -cd updates.img | cpio -tv - - - name: Update container images used here - run: | - sudo podman pull quay.io/rhinstaller/kstest-runner:latest - - - name: Post status building artifacts - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'building artifacts [${{ runner.name }}]' - state: pending - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Build anaconda-iso-creator container image - working-directory: ./anaconda - run: | - # set static tag to avoid complications when looking what tag is used - sudo make -f ./Makefile.am anaconda-iso-creator-build CI_TAG=$CONTAINER_TAG - - - name: Build anaconda-rpm container (for RPM build) - working-directory: ./anaconda - run: | - # set static tag to avoid complications when looking what tag is used - make -f ./Makefile.am anaconda-rpm-build CI_TAG=$CONTAINER_TAG - - - name: Build Anaconda RPM files - working-directory: ./anaconda - run: | - # output of the build will be stored in ./result/build/01-rpm-build/*.rpm - make -f ./Makefile.am container-rpms-scratch CI_TAG=$CONTAINER_TAG - mkdir -p ${{ github.workspace }}/kickstart-tests/data/additional_repo/ - cp -av ./result/build/01-rpm-build/*.rpm ${{ github.workspace }}/kickstart-tests/data/additional_repo/ - - - name: Build boot.iso - run: | - mkdir -p images - # /var/tmp tmpfs speeds up lorax and avoids https://bugzilla.redhat.com/show_bug.cgi?id=1906364 - sudo podman run -i --rm --privileged \ - --tmpfs /var/tmp:rw,mode=1777 \ - -v ${{ github.workspace }}/kickstart-tests/data/additional_repo:/anaconda-rpms:ro \ - -v ${{ github.workspace }}/images:/images:z \ - $ISO_BUILD_CONTAINER_NAME:$CONTAINER_TAG - - - name: Clean up after lorax - if: always() - run: | - # remove container images together with the container - sudo podman rmi -f $ISO_BUILD_CONTAINER_NAME:$CONTAINER_TAG || true - sudo podman rmi -f $RPM_BUILD_CONTAINER_NAME:$CONTAINER_TAG || true - - - name: Generate query arguments for "${{ needs.pr-info.outputs.launch_args }}" - id: generate_query - working-directory: ./kickstart-tests - run: | - set -eux - PERMIAN_QUERY=$(scripts/generate-permian-query.py \ - --skip-testtypes ${{ needs.pr-info.outputs.skip_tests }} \ - ${{ needs.pr-info.outputs.launch_args }} ) - if [ $? == 0 ]; then - echo "query=$PERMIAN_QUERY" >> $GITHUB_OUTPUT - else - echo "Parsing of the request arguments failed" - exit 1 - fi - - - name: Create Permian settings file - working-directory: ./permian - run: | - cat < settings.ini - [kickstart_test] - kstest_local_repo=${{ github.workspace }}/kickstart-tests - [library] - directPath=${{ github.workspace }}/kickstart-tests/testlib - EOF - - - name: Post status running tests - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'running tests [${{ runner.name }}]' - state: pending - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Run kickstart tests in container - working-directory: ./permian - run: | - sudo --preserve-env=TEST_JOBS \ - PYTHONPATH=${PYTHONPATH:-}:${{ github.workspace }}/tplib \ - ./run_subset --debug-log permian.log \ - --settings settings.ini \ - --override workflows.dry_run=False \ - --testcase-query '${{ steps.generate_query.outputs.query }}' \ - run_event '{ - "type":"everything", - "everything_testplan":{ - "configurations":[{"architecture":"x86_64"}], - "point_person":"rvykydal@redhat.com" - }, - "bootIso":{"x86_64":"file://${{ github.workspace }}/images/boot.iso"}, - "kstestParams":{"platform":"${{ needs.pr-info.outputs.platform }}"} - }' - - # Needed so that other jobs are able to clean the working dir - # FIXME: we should investigate running permian/launch sudo-less - - name: Make artefacts created by sudo cleanable - if: always() - run: - sudo chown -R github:github . - - - name: Collect logs - if: always() - uses: actions/upload-artifact@v3 - with: - name: 'logs' - # skip the /anaconda subdirectories, too large - path: | - kickstart-tests/data/logs/kstest.log - kickstart-tests/data/logs/kstest-*/*.log - kickstart-tests/data/additional_repo/*.rpm - permian/permian.log - - # Permian hides the exit code of launcher - - name: Pass the launch script exit code - working-directory: ./permian - run: | - rc=$( awk '/Runner return code: /{ print $4 }' permian.log) - if [ -n "$rc" ]; then - exit $rc - else - exit 111 - fi - - - name: Set result status - if: always() - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'finished [${{ runner.name }}]' - state: ${{ job.status }} - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - waive: - runs-on: ubuntu-latest - needs: pr-info - if: needs.pr-info.outputs.allowed_user == 'true' && contains(github.event.comment.body, '--waive') - steps: - - - name: Get the waiving reason - id: get_reason - env: - BODY: ${{ github.event.comment.body }} - run: | - REASON=$(echo "$BODY" | sed -e "s#/kickstart-test --waive ##" | sed 's/[[:space:]]*$//') - echo "reason=Waived, $REASON" >> $GITHUB_OUTPUT - - - name: Set status - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: 'kickstart-test --testtype smoke' - description: '${{ steps.get_reason.outputs.reason }}' - state: ${{ job.status }} - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/push-tests.yml b/.github/workflows/push-tests.yml deleted file mode 100644 index 7fc9f28987e..00000000000 --- a/.github/workflows/push-tests.yml +++ /dev/null @@ -1,45 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: push-tests.yml.j2 - -name: Run tests on push -on: - push: - branches: - - master - - fedora-[0-9]+ - -permissions: - contents: read - -jobs: - unit-tests: - runs-on: ubuntu-20.04 - timeout-minutes: 30 - steps: - - name: Clone repository - uses: actions/checkout@v3 - - - name: Build anaconda-ci container - run: make -f Makefile.am anaconda-ci-build - - - name: Run tests in anaconda-ci container - run: | - # put the log in the output, where it's easy to read and link to - make -f Makefile.am container-ci || { cat test-logs/test-suite.log; exit 1; } - - - name: Upload test and coverage logs - if: always() - uses: actions/upload-artifact@v3 - with: - name: 'logs' - path: test-logs/* - - - name: Upload coverage to Codecov - if: always() - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/release-automatically.yml b/.github/workflows/release-automatically.yml index 7d7cd018036..775fa0189b5 100644 --- a/.github/workflows/release-automatically.yml +++ b/.github/workflows/release-automatically.yml @@ -16,12 +16,6 @@ name: Release automatically on: workflow_dispatch: - schedule: - - cron: 48 4 * * TUE - # GH workers run on UTC+0 time. The timing is so that the draft can be reviewed at start of - # work day in Brno which is in UTC+1 or UTC+2. - # Tuesdays are the traditional rawhide anaconda release day, so that there are enough days to - # unbreak things. permissions: contents: write diff --git a/.github/workflows/stale-pull-requests.yml b/.github/workflows/stale-pull-requests.yml deleted file mode 100644 index ec47ac3c56f..00000000000 --- a/.github/workflows/stale-pull-requests.yml +++ /dev/null @@ -1,33 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: stale-pull-requests.yml.j2 - -name: Close stale pull requests -on: - schedule: - - cron: 30 1 * * * - -permissions: - contents: read - pull-requests: write - -jobs: - stale: - runs-on: ubuntu-latest - # Don't run scheduled workflows on forks. - if: github.event_name != 'schedule' || github.repository == 'rhinstaller/anaconda' - steps: - - name: Handle stale pull requests - uses: actions/stale@v8 - with: - days-before-stale: 60 - days-before-close: 30 - stale-pr-label: stale - stale-pr-message: | - This PR is stale because it has been open 60 days with no activity. - Remove stale label or comment or this will be closed in 30 days. - close-pr-message: | - This PR was closed because it has been stalled for 30 days with no activity. diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 534e45c2c21..d232b8e019b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,13 +26,8 @@ jobs: release: [''] include: - release: '' - target_branch: 'master' - ci_tag: 'master' - ## add to release: [...] also eln if re-enabled by uncommenting the below - #- release: eln - # target_branch: 'master' - # ci_tag: 'eln' - # build-args: '--build-arg=image=quay.io/fedoraci/fedora:eln-x86_64' + target_branch: 'fedora-39' + ci_tag: 'fedora-39' env: CI_TAG: '${{ matrix.ci_tag }}' @@ -96,13 +91,8 @@ jobs: release: [''] include: - release: '' - target_branch: 'master' - ci_tag: 'master' - ## add to release: [...] also eln if re-enabled by uncommenting the below - #- release: eln - # target_branch: 'master' - # ci_tag: 'eln' - # build-args: '--build-arg=image=quay.io/fedoraci/fedora:eln-x86_64' + target_branch: 'fedora-39' + ci_tag: 'fedora-39' env: CI_TAG: '${{ matrix.ci_tag }}' diff --git a/.github/workflows/try-release-daily.yml b/.github/workflows/try-release-daily.yml deleted file mode 100644 index 00ea51f5e8a..00000000000 --- a/.github/workflows/try-release-daily.yml +++ /dev/null @@ -1,80 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: try-release-daily.yml.j2 - -name: Try building a release daily -# Build a release tarball for all supported branches to verify the code is releasable. - -on: - schedule: - - cron: 0 3 * * * - # be able to start this action manually from a actions tab when needed - workflow_dispatch: - -permissions: - contents: read - -jobs: - daily-release-test: - runs-on: [self-hosted, kstest] - # Don't run scheduled workflows on forks. - if: github.event_name != 'schedule' || github.repository == 'rhinstaller/anaconda' - strategy: - fail-fast: false - matrix: - branch: ['master', 'rhel-8', 'rhel-9'] - - steps: - - name: Check out repo - uses: actions/checkout@v3 - with: - ref: ${{ matrix.branch }} - - - name: Build anaconda container (to make the release) - run: | - make -f Makefile.am anaconda-release-build - - - name: Run the build in the container - id: build - run: | - make -f Makefile.am container-release | tee release.log - - - name: Check logs for malformed translations - if: ${{ steps.build.outcome == 'success' }} - run: | - errors=$(grep -E "Unable to compile [^:]+: .*" release.log || true) # grep exits with 1 if no lines found - if [ -n "$errors" ]; then - echo "Failed to compile some translations:" - echo "$errors" - exit 1 - else - echo "No translation compilation errors found." - fi - - - name: Check if translation files are present in tarball - if: ${{ always() && steps.build.outcome == 'success' }} - run: | - tarfiles=$(tar -tf anaconda-*.tar.bz2) - missing=0 - required_languages="fr ja zh_CN es pt de ru ar" - # Languages that are presented first in the GUI. - # This list comes from langtable's list_common_languages, which in turn reportedly comes - # from gnome-control-center's cc_common_language_get_initial_languages. - if [[ "${{ matrix.branch }}" == *rhel-* ]]; then - required_languages="$required_languages ko it zh_TW" - # Additionally, we test languages that are supported and translated on RHEL. - fi - for translation in $required_languages ; do - if ! [[ $tarfiles == */po/$translation.po* ]]; then - echo "missing mandatory translation: $translation" - missing=1 - fi - done - if [[ "$missing" == 0 ]]; then - echo "All mandatory translations found: $required_languages" - else - exit 1 - fi diff --git a/.github/workflows/webui-periodic.yml b/.github/workflows/webui-periodic.yml deleted file mode 100644 index 1d4d673d75d..00000000000 --- a/.github/workflows/webui-periodic.yml +++ /dev/null @@ -1,168 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: webui-periodic.yml.j2 - -# Run webui e2e tests periodically in Permian -name: Periodic webui e2e tests -on: - schedule: - - cron: 0 23 * * * - workflow_dispatch: - -permissions: - contents: read - -jobs: - scenario: - name: Webui periodic - runs-on: [self-hosted, kstest] - - timeout-minutes: 65 - env: - # ocp-master-xxl: 32GB RAM / 4GB RAM per VM - TEST_JOBS: 8 - # The timeout should be a few minutes less then the job's timeout-minutes - # so that we get partial results and logs in case of the timeout. - LAUNCHER_TIMEOUT_MINUTES: 60 - # URL to the unpacked installation image - CONTAINER_TAG: master - ISO_BUILD_CONTAINER_NAME: 'quay.io/rhinstaller/anaconda-iso-creator' - - steps: - # self-hosted runners don't do this automatically; also useful to keep stuff around for debugging - # need to run sudo as the launch script and the container create root/other user owned files - - name: Clean up previous run - run: | - sudo podman ps -q --all --filter='ancestor=kstest-runner' | xargs -tr sudo podman rm -f - sudo podman volume rm --all || true - sudo rm -rf * - - # The test library is in anaconda repository - - name: Clone anaconda repository - uses: actions/checkout@v3 - with: - ref: master - fetch-depth: 0 - path: anaconda - - # TODO: use main branch when the webui workflow is merged there - - name: Clone Permian repository - uses: actions/checkout@v3.3.0 - with: - repository: rhinstaller/permian - path: permian - ref: devel - - - name: Clone tplib repository - uses: actions/checkout@v3.3.0 - with: - repository: rhinstaller/tplib - path: tplib - - - name: Build anaconda-rpm container (for RPM build) - working-directory: ./anaconda - run: | - # set static tag to avoid complications when looking what tag is used - make -f Makefile.am anaconda-rpm-build CI_TAG=$CONTAINER_TAG - - - name: Build Anaconda RPM files - working-directory: ./anaconda - run: | - # output of the build will be stored in ./result/build/01-rpm-build/*.rpm - make -f Makefile.am container-rpms-scratch CI_TAG=$CONTAINER_TAG - mkdir -p ./anaconda_rpms/ - cp -av ./result/build/01-rpm-build/*.rpm ./anaconda_rpms/ - - - name: Build anaconda-iso-creator container image - working-directory: ./anaconda - run: | - # set static tag to avoid complications when looking what tag is used - sudo make -f Makefile.am anaconda-iso-creator-build CI_TAG=$CONTAINER_TAG - - - name: Build the boot.iso - working-directory: ./anaconda - run: | - mkdir -p images - # /var/tmp tmpfs speeds up lorax and avoids https://bugzilla.redhat.com/show_bug.cgi?id=1906364 - sudo podman run -i --rm --privileged \ - --tmpfs /var/tmp:rw,mode=1777 \ - -v `pwd`/anaconda_rpms:/anaconda-rpms:ro \ - -v `pwd`/images:/images:z \ - --entrypoint /lorax-build-webui \ - $ISO_BUILD_CONTAINER_NAME:$CONTAINER_TAG - - - name: Clean up after lorax - if: always() - run: | - # remove container images together with the container - sudo podman rmi -f $ISO_BUILD_CONTAINER_NAME:$CONTAINER_TAG || true - sudo podman rmi -f $RPM_BUILD_CONTAINER_NAME:$CONTAINER_TAG || true - - - name: Create Permian settings file - working-directory: ./permian - run: | - cat < settings.ini - [AnacondaWebUI] - anaconda_repo=file://${{ github.workspace }}/anaconda - hypervisor_vm_limit=${{ env.TEST_JOBS }} - test_timeout=${{ env.LAUNCHER_TIMEOUT_MINUTES }} - [library] - directPath=${{ github.workspace }}/anaconda/ui/webui/test/end2end - EOF - - - name: Run webui end2end tests - working-directory: ./permian - run: | - PYTHONPATH=${PYTHONPATH:-}:${{ github.workspace }}/tplib \ - ./pipeline --debug-log permian.log \ - --settings settings.ini \ - -o github.repository=${{ github.repository }} \ - -o github.token=${{ secrets.GITHUB_TOKEN }} \ - run_event '{ - "type":"github.webui.e2e.scheduled", - "bootIso": { - "x86_64": "file://${{ github.workspace }}/anaconda/images/boot.iso" - } - }' - - - name: Collect logs - if: always() - uses: actions/upload-artifact@v3 - with: - name: 'logs' - path: | - permian/permian.log - permian/local_logs/ - permian/pipeline_data - permian/static/ - permian/index.html - permian/xunit*.xml - permian/*.dump - - # Permian exit code doesn't reflect the test results - - name: Check tests results - if: always() - working-directory: ./permian - shell: bash {0} - run: | - ls xunit*.xml > /dev/null - if [ $? -ne 0 ]; then - exit 112 - fi - fails=$( grep -E '|' xunit*.xml ) - if [ -n "$fails" ]; then - exit 111 - else - exit 0 - fi - - - name: Upload image artifacts - if: always() - uses: actions/upload-artifact@v3 - with: - name: images - path: | - anaconda/images/boot.iso diff --git a/.github/workflows/webui-tests.yml b/.github/workflows/webui-tests.yml deleted file mode 100644 index a7d3ac94590..00000000000 --- a/.github/workflows/webui-tests.yml +++ /dev/null @@ -1,291 +0,0 @@ -# ====================================== -# WARNING! -# THIS FILE IS GENERATED FROM A TEMPLATE -# DO NOT EDIT THIS FILE MANUALLY! -# ====================================== -# The template is located in: webui-tests.yml.j2 - -# Run webui end2end tests in a PR -# Triggered by a "/webui-test " comment from an organization member. -# Currently the only is supported - "os" URL for InstallationSource -name: webui-tests -on: - issue_comment: - types: [created] - -permissions: - contents: read - statuses: write - checks: write - -jobs: - pr-info: - if: startsWith(github.event.comment.body, '/webui-test') - runs-on: ubuntu-latest - steps: - - name: Query comment author repository permissions - uses: octokit/request-action@v2.x - id: user_permission - with: - route: GET /repos/${{ github.repository }}/collaborators/${{ github.event.sender.login }}/permission - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # restrict running of tests to users with admin or write permission for the repository - # see https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#get-repository-permissions-for-a-user - # store output if user is allowed in allowed_user job output so it has to be checked in downstream job - - name: Check if user does have correct permissions - if: contains('admin write', fromJson(steps.user_permission.outputs.data).permission) - id: check_user_perm - run: | - echo "User '${{ github.event.sender.login }}' has permission '${{ fromJson(steps.user_permission.outputs.data).permission }}' allowed values: 'admin', 'write'" - echo "allowed_user=true" >> $GITHUB_OUTPUT - - - name: Get information for pull request - uses: octokit/request-action@v2.x - id: pr_api - with: - route: GET /repos/${{ github.repository }}/pulls/${{ github.event.issue.number }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Parse launch arguments - id: parse_launch_args - # Do not use comment body directly in the shell command to avoid possible code injection. - env: - BODY: ${{ github.event.comment.body }} - run: | - # extract first line and cut out the "/webui-test" first word - LAUNCH_ARGS=$(echo "$BODY" | sed -n '1 s/^[^ ]* *//p') - echo "launch arguments are: $LAUNCH_ARGS" - echo "launch_args=${LAUNCH_ARGS}" >> $GITHUB_OUTPUT - - outputs: - allowed_user: ${{ steps.check_user_perm.outputs.allowed_user }} - base_ref: ${{ fromJson(steps.pr_api.outputs.data).base.ref }} - sha: ${{ fromJson(steps.pr_api.outputs.data).head.sha }} - launch_args: ${{ steps.parse_launch_args.outputs.launch_args }} - - run: - needs: pr-info - if: needs.pr-info.outputs.allowed_user == 'true' && ! contains(github.event.comment.body, '--waive') - runs-on: [self-hosted, kstest] - timeout-minutes: 65 - env: - STATUS_NAME: Permian WebUI e2e - TARGET_BRANCH: ${{ needs.pr-info.outputs.base_ref }} - # ocp-master-xxl: 32GB RAM / 4GB RAM per VM - TEST_JOBS: 8 - # The timeout should be a few minutes less then the job's timeout-minutes - # so that we get partial results and logs in case of the timeout. - LAUNCHER_TIMEOUT_MINUTES: 60 - # URL to the unpacked installation image - CONTAINER_TAG: master - ISO_BUILD_CONTAINER_NAME: 'quay.io/rhinstaller/anaconda-iso-creator' - - steps: - # we post statuses manually as this does not run from a pull_request event - # https://developer.github.com/v3/repos/statuses/#create-a-status - - name: Create in-progress status - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'gathering repositories [${{ runner.name }}]' - state: pending - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # self-hosted runners don't do this automatically; also useful to keep stuff around for debugging - # need to run sudo as the launch script and the container create root/other user owned files - - name: Clean up previous run - run: | - sudo podman ps -q --all --filter='ancestor=kstest-runner' | xargs -tr sudo podman rm -f - sudo podman volume rm --all || true - sudo rm -rf * .git - - - name: Clone anaconda repository - uses: actions/checkout@v3 - with: - ref: ${{ needs.pr-info.outputs.sha }} - fetch-depth: 0 - path: anaconda - - - name: Rebase to current ${{ env.TARGET_BRANCH }} - working-directory: ./anaconda - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git log --oneline -1 origin/${{ env.TARGET_BRANCH }} - git rebase origin/${{ env.TARGET_BRANCH }} - - # TODO: use main branch when the webui workflow is merged there - - name: Clone Permian repository - uses: actions/checkout@v3 - with: - repository: rhinstaller/permian - path: permian - ref: devel - - - name: Clone tplib repository - uses: actions/checkout@v3 - with: - repository: rhinstaller/tplib - path: tplib - - - name: Post status building artifacts - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'TODO building artifacts [${{ runner.name }}]' - state: pending - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Build anaconda-rpm container (for RPM build) - working-directory: ./anaconda - run: | - # set static tag to avoid complications when looking what tag is used - make -f Makefile.am anaconda-rpm-build CI_TAG=$CONTAINER_TAG - - - name: Build Anaconda RPM files - working-directory: ./anaconda - run: | - # output of the build will be stored in ./result/build/01-rpm-build/*.rpm - make -f Makefile.am container-rpms-scratch CI_TAG=$CONTAINER_TAG - mkdir -p ./anaconda_rpms/ - cp -av ./result/build/01-rpm-build/*.rpm ./anaconda_rpms/ - - - name: Build anaconda-iso-creator container image - working-directory: ./anaconda - run: | - # set static tag to avoid complications when looking what tag is used - sudo make -f Makefile.am anaconda-iso-creator-build CI_TAG=$CONTAINER_TAG - - - name: Build the boot.iso - working-directory: ./anaconda - run: | - mkdir -p images - # /var/tmp tmpfs speeds up lorax and avoids https://bugzilla.redhat.com/show_bug.cgi?id=1906364 - sudo podman run -i --rm --privileged \ - --tmpfs /var/tmp:rw,mode=1777 \ - -v `pwd`/anaconda_rpms:/anaconda-rpms:ro \ - -v `pwd`/images:/images:z \ - --entrypoint /lorax-build-webui \ - $ISO_BUILD_CONTAINER_NAME:$CONTAINER_TAG - - - name: Clean up after lorax - if: always() - run: | - # remove container images together with the container - sudo podman rmi -f $ISO_BUILD_CONTAINER_NAME:$CONTAINER_TAG || true - sudo podman rmi -f $RPM_BUILD_CONTAINER_NAME:$CONTAINER_TAG || true - - - name: Create Permian settings file - working-directory: ./permian - run: | - cat < settings.ini - [AnacondaWebUI] - anaconda_repo=file://${{ github.workspace }}/anaconda - hypervisor_vm_limit=${{ env.TEST_JOBS }} - test_timeout=${{ env.LAUNCHER_TIMEOUT_MINUTES }} - [library] - directPath=${{ github.workspace }}/anaconda/ui/webui/test/end2end - EOF - - - name: Post status running tests - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'running pipeline [${{ runner.name }}]' - state: pending - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Run webui end2end tests - working-directory: ./permian - run: | - PYTHONPATH=${PYTHONPATH:-}:${{ github.workspace }}/tplib \ - ./pipeline --debug-log permian.log \ - --settings settings.ini \ - -o github.pull-request=${{ github.event.issue.number }} \ - -o github.repository=${{ github.repository }} \ - -o github.token=${{ secrets.GITHUB_TOKEN }} \ - run_event '{ - "type":"github.pr.anaconda", - "bootIso": { - "x86_64": "file://${{ github.workspace }}/anaconda/images/boot.iso" - } - }' - - - name: Collect logs - if: always() - uses: actions/upload-artifact@v3 - with: - name: 'logs' - path: | - permian/permian.log - permian/local_logs/ - permian/pipeline_data - permian/static/ - permian/index.html - permian/xunit*.xml - permian/*.dump - - # Permian exit code doesn't reflect the test results - - name: Check tests results - working-directory: ./permian - shell: bash {0} - run: | - ls xunit*.xml > /dev/null - if [ $? -ne 0 ]; then - exit 112 - fi - fails=$( grep -E '|' xunit*.xml ) - if [ -n "$fails" ]; then - exit 111 - else - exit 0 - fi - - - name: Set result status - if: always() - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: 'finished [${{ runner.name }}]' - state: ${{ job.status }} - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - waive: - runs-on: ubuntu-latest - needs: pr-info - if: needs.pr-info.outputs.allowed_user == 'true' && contains(github.event.comment.body, '--waive') - steps: - - - name: Get the waiving reason - id: get_reason - env: - BODY: ${{ github.event.comment.body }} - run: | - REASON=$(echo "$BODY" | sed -e "s#/kickstart-test --waive ##") - echo "reason=Waived, $REASON" >> $GITHUB_OUTPUT - - - name: Set status - uses: octokit/request-action@v2.x - with: - route: 'POST /repos/${{ github.repository }}/statuses/${{ needs.pr-info.outputs.sha }}' - context: '${{ env.STATUS_NAME }} ${{ needs.pr-info.outputs.launch_args }}' - description: '${{ steps.get_reason.outputs.reason }}' - state: ${{ job.status }} - target_url: 'https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.packit.yml b/.packit.yml index 9c930bd04a4..8bc7adec586 100644 --- a/.packit.yml +++ b/.packit.yml @@ -38,24 +38,24 @@ jobs: - job: propose_downstream trigger: release - dist_git_branches: main + dist_git_branches: f39 - job: tests trigger: pull_request targets: - - fedora-rawhide - - - job: copr_build - trigger: pull_request - targets: - - fedora-rawhide + - fedora-39 - job: copr_build trigger: commit targets: - - fedora-rawhide - branch: master + - fedora-39 + branch: fedora-39 owner: "@rhinstaller" - project: Anaconda + project: Anaconda-devel preserve_project: True + additional_repos: + - "copr://@storage/blivet-daily" + # This repository contains fixup of Rawhide broken environment. + # Mainly useful when there is a package which is not yet in Rawhide but build is available. + - "https://fedorapeople.org/groups/anaconda/repos/anaconda_fixup_repo/" diff --git a/branch-config.mk b/branch-config.mk index fb1e655496f..f6e082a066c 100644 --- a/branch-config.mk +++ b/branch-config.mk @@ -26,17 +26,8 @@ # conflicts on multiple places. -# Name of the expected current git branch. -# This could be master, fedora-XX, rhel-X ... -GIT_BRANCH ?= master - -# Directory for this anaconda branch in anaconda-l10n repository. This could be master, fXX, rhel-8 etc. -L10N_DIR ?= master - -# Base container for our containers. -BASE_CONTAINER ?= registry.fedoraproject.org/fedora:rawhide - -# COPR repo for use in container builds. -# Can be @rhinstaller/Anaconda for master, or @rhinstaller/Anaconda-devel for branched Fedora. -COPR_REPO ?= \@rhinstaller/Anaconda +GIT_BRANCH ?= fedora-39 +L10N_DIR ?= f39 +BASE_CONTAINER ?= registry.fedoraproject.org/fedora:39 +COPR_REPO ?= \@rhinstaller/Anaconda-devel diff --git a/dracut/kickstart_version.py b/dracut/kickstart_version.py index ff13fa2ab03..f03df1bcced 100644 --- a/dracut/kickstart_version.py +++ b/dracut/kickstart_version.py @@ -22,6 +22,6 @@ # Red Hat, Inc. # Import the kickstart version. -from pykickstart.version import DEVEL as VERSION +from pykickstart.version import F39 as VERSION __all__ = ["VERSION"] diff --git a/po/l10n-config.mk b/po/l10n-config.mk index 66d09aaddd9..323355487bf 100644 --- a/po/l10n-config.mk +++ b/po/l10n-config.mk @@ -18,7 +18,7 @@ # What to pull from the l10n repo when getting translations # This supports anything that git can use, but is intended to be a SHA of a commit that works. # This line must be always in the same format, because it is changed by automation. -GIT_L10N_SHA ?= b81978a0910bf45944437505a116e9f63c9e1d3c +GIT_L10N_SHA ?= 5af42857e66151ef0bed1ac01fdd2b2cab64bcc9 # Localization repository location L10N_REPOSITORY ?= https://github.com/rhinstaller/anaconda-l10n.git diff --git a/pyanaconda/core/kickstart/version.py b/pyanaconda/core/kickstart/version.py index b110ca8e007..ca5117d030d 100644 --- a/pyanaconda/core/kickstart/version.py +++ b/pyanaconda/core/kickstart/version.py @@ -25,6 +25,6 @@ # Red Hat, Inc. # -from pykickstart.version import DEVEL as VERSION +from pykickstart.version import F39 as VERSION __all__ = ["VERSION"]