Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:Micro:6.0
openSUSE-repos
openSUSE-repos-20240621.6fd1ef2.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File openSUSE-repos-20240621.6fd1ef2.obscpio of Package openSUSE-repos
07070100000000000041ED0000000000000000000000016675498300000000000000000000000000000000000000000000002800000000openSUSE-repos-20240621.6fd1ef2/.github07070100000001000041ED0000000000000000000000016675498300000000000000000000000000000000000000000000003200000000openSUSE-repos-20240621.6fd1ef2/.github/workflows07070100000002000081A400000000000000000000000166754983000003E2000000000000000000000000000000000000004200000000openSUSE-repos-20240621.6fd1ef2/.github/workflows/repo_checks.yml# This is a basic workflow to help you get started with Actions name: CI # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the "main" branch push: branches: [ "main" ] pull_request: branches: [ "main" ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 # Runs a single command using the runners shell. use run: | to run multiple (command per line) - name: Run a one-line script run: bash checks/repo_checks 07070100000003000081A40000000000000000000000016675498300000104000000000000000000000000000000000000003C00000000openSUSE-repos-20240621.6fd1ef2/.github/workflows/test.yaml--- name: CI on: [pull_request, workflow_dispatch] # yamllint disable-line rule:truthy jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Test run: | cd t && \ make test_container 07070100000004000081A40000000000000000000000016675498300001062000000000000000000000000000000000000002A00000000openSUSE-repos-20240621.6fd1ef2/README.md # openSUSE-repos **Definitions for openSUSE repository management via zypp-services.** [openSUSE-repos](https://github.com/openSUSE/openSUSE-repos) simplifies openSUSE repository management by utilizing [Repository Index Service (RIS)](https://en.opensuse.org/openSUSE:Standards_Repository_Index_Service) for core distribution. Current version utilizes the new [cdn.opensuse.org](https://code.opensuse.org/leap/features/issue/128). This feature was originally requested as part of https://code.opensuse.org/leap/features/issue/91 ## Example manual usage of zypper as ``` $ tree /somewhere # zypp expects repo/repoindex.xml /somewhere └── repo └── repoindex.xml $ zypper addservice /somewhere openSUSE # Use openSUSE prefix for all reposistories managed by service $ zypper --gpg-auto-import-keys ref -s # optionally force refresh services Repositories managed by zypp-services can be easily identified as they will have openSUSE: prefix (or any other that you have chosen). ``` ## How to enable or disable source or debug repositories with openSUSE-repos ### Enabling / Disabling openSUSE source repo ``` $ sudo zypper modifyrepo -e openSUSE:repo-oss-source Repository 'openSUSE:repo-oss-source' has been successfully enabled. $ sudo zypper modifyrepo -d openSUSE:repo-oss-source Repository 'openSUSE:repo-oss-source' has been successfully disabled. ``` ### Enabling / Disabling openSUSE debug repo ``` $ sudo zypper modifyrepo -e openSUSE:repo-oss-debug Repository 'openSUSE:repo-oss-debug' has been successfully enabled. $ sudo zypper modifyrepo -d openSUSE:repo-oss-debug Repository 'openSUSE:repo-oss-debug' has been successfully disabled. ``` ### There is a typo in repository definition how can I fix it myself? ``` $ vim /usr/share/zypp/local/service/openSUSE/repo/repoindex.xml $ zypper --gpg-auto-import-keys ref -s # to refresh services ``` ## Restoring original distribution repositories openSUSE-repos does backup of all existing default distribution repo files under /etc/zypp/repos.d/*.rpmsave As of today uninstalling openSUSE-repos **will not** restore original distribution repo files. You can restore original repo files by running following as root. Note: You should not use rpmconf, as the original file was simply moved under a new name. ``` # zypper remove openSUSE-repos-* # ls -la /etc/zypp/repos.d/*.rpmsave # review list of repos that will be restored # for file in /etc/zypp/repos.d/*.rpmsave; do echo mv $file `echo $file | sed -s "s/\.rpmsave//"`; done # zypper ref ``` ## How to contribute? Package is developed in [GitHub/openSUSE](https://github.com/openSUSE/openSUSE-repos/). We have a [simple CI](https://github.com/openSUSE/openSUSE-repos/actions) which runs [repo_checks](https://github.com/openSUSE/openSUSE-repos/blob/main/checks/repo_checks) to ensure that paths are correct. Before we enroll update to openSUSE users it has to pass [openQA test](https://github.com/os-autoinst/os-autoinst-distri-opensuse/blob/master/tests/console/opensuse_repos.pm). Package or its [.spec file](https://build.opensuse.org/projects/Base:System/packages/openSUSE-repos/files/openSUSE-repos.spec?expand=1) needs to be manually updated in [OBS](https://build.opensuse.org/package/show/Base:System/openSUSE-repos) once changes are merged in GitHub. Make sure to install osc and required obs services by openSUSE-repos package ``` $ sudo zypper in openSUSE-release-tools obs-service-tar ``` Fork the repository in OBS, fetch latest request and make a submit request. ``` $ osc bco Base:System/openSUSE-repos cd home:i*:branches:Base:System/openSUSE-repos osc service mr osc addremove osc commit # changelog can be reviewed by osc vc osc sr # submit request back to Base:System ``` Don't forget to send changes back to Tumbleweed and Leap once changes are merged to Base:System. ``` $ osc sr Base:System openSUSE-repos openSUSE:Factory $ osc sr openSUSE:Factory openSUSE-repos openSUSE:Leap:15.6 # once merged to Factory $ osc sr openSUSE:Factory openSUSE-repos openSUSE:Leap:16.0 # once merged to Factory $ osc sr openSUSE:Factory openSUSE-repos openSUSE:Leap:Micro:6.0 # once merged to Factory ``` That's all. Happy Hacking 07070100000005000041ED0000000000000000000000016675498300000000000000000000000000000000000000000000002700000000openSUSE-repos-20240621.6fd1ef2/checks07070100000006000081ED0000000000000000000000016675498300000A65000000000000000000000000000000000000003300000000openSUSE-repos-20240621.6fd1ef2/checks/repo_checks#!/bin/bash set -e export CURRDIR="$(dirname -- "${BASH_SOURCE[0]}")" for path in ${CURRDIR}/../*.xml; do filename=`basename $path` echo "Checking repo definitions in $filaname" export disturl=`grep "disturl=" $path | awk -F"=" '{ print $2 }' | sed 's/"//g' | sed "s/'//g"` export distsub=`grep "distsub=" $path | awk -F"=" '{ print $2 }' | sed 's/"//g' | sed "s/'//g"` echo "[INFO] $filename disturl=${disturl}" echo "[INFO] $filename distsub=${distsub}" export distver="tumbleweed" # Default export distarch="zsystems" # we expect s390x to be around # Manually managed in the test if [ "$distsub" == "leap" ]; then export distver="15.5" # Should be bumped periodically export distarch="armv7hl" # we expect s390x to be around fi if [ "$distsub" == "leap-micro" ]; then if [[ $filename == *"leap-micro6"* ]]; then export distver="6.0" # Should be bumped periodically else export distver="5.5" # Should be bumped periodically fi export distarch="aarch64" # or x86_64 would work too fi echo "[INFO] Using harcoded distver=$distver" echo "[INFO] Using harcoded distarch=$distarch" # Expand all variables in url paths and check if they exist grep '<repo url' ${path} | while read line; do url=`echo $line | awk -F"=" '{ print $2 }' | sed 's/"//g' | sed "s/'//g"` #echo "url=${url}" expanded_url=`echo $url \ | awk -v u="$distver" '{gsub(/%{distver}/,u)}1' \ | awk -v u="$disturl" '{gsub(/%{disturl}/,u)}1' \ | awk -v u="$distsub" '{gsub(/%{distsub}/,u)}1' \ | awk -v u="$distarch" '{gsub(/\\$DIST_ARCH/,u)}1'` # /etc/zypp/vars.d/DIST_ARCH ports and LEAPM are using it echo "[INFO] expanded_url=$expanded_url" # Check 1 - unexpanded zypp %{} variables if [[ $expanded_url = *"%{"* ]]; then echo "[ERROR] $filename - Unexpanded variable found in $expanded_url" exit 1 fi # Check 2 - Custom user variables, as of today we define only "$" if [[ $expanded_url = *"$"* ]]; then echo "[ERROR] $filename - Unexpanded shell \$ variable found in $expanded_url" exit 2 fi # Check 3 - URL availability if curl --head --silent --fail "${expanded_url}/repodata/repomd.xml" > /dev/null 2>&1; then echo "[OK] - $filename - Url "${expanded_url}/repodata/repomd.xml" exists." else echo "[ERROR] - $filename - Url "${expanded_url}/repodata/repomd.xml" does not exist." exit 3 fi done done 07070100000007000081A4000000000000000000000001667549830000014A000000000000000000000000000000000000003A00000000openSUSE-repos-20240621.6fd1ef2/nvidia-leap-repoindex.xml<repoindex ttl="0" disturl="https://download.nvidia.com" distsub="leap" distver="${releasever}" debugenable="false" sourceenable="false"> <repo url="%{disturl}/opensuse/%{distsub}/%{distver}" alias="repo-non-free" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> </repoindex> 07070100000008000081A4000000000000000000000001667549830000011C000000000000000000000000000000000000003D00000000openSUSE-repos-20240621.6fd1ef2/nvidia-microos-repoindex.xml<repoindex ttl="0" disturl="https://download.nvidia.com" distsub="tumbleweed" debugenable="false" sourceenable="false"> <repo url="%{disturl}/opensuse/%{distsub}" alias="repo-non-free" name="%{alias}" enabled="true" autorefresh="true"/> </repoindex> 07070100000009000081A4000000000000000000000001667549830000011C000000000000000000000000000000000000003E00000000openSUSE-repos-20240621.6fd1ef2/nvidia-slowroll-repoindex.xml<repoindex ttl="0" disturl="https://download.nvidia.com" distsub="tumbleweed" debugenable="false" sourceenable="false"> <repo url="%{disturl}/opensuse/%{distsub}" alias="repo-non-free" name="%{alias}" enabled="true" autorefresh="true"/> </repoindex> 0707010000000A000081A4000000000000000000000001667549830000011C000000000000000000000000000000000000004000000000openSUSE-repos-20240621.6fd1ef2/nvidia-tumbleweed-repoindex.xml<repoindex ttl="0" disturl="https://download.nvidia.com" distsub="tumbleweed" debugenable="false" sourceenable="false"> <repo url="%{disturl}/opensuse/%{distsub}" alias="repo-non-free" name="%{alias}" enabled="true" autorefresh="true"/> </repoindex> 0707010000000B000081A400000000000000000000000166754983000003CF000000000000000000000000000000000000004300000000openSUSE-repos-20240621.6fd1ef2/opensuse-leap-micro5-repoindex.xml<repoindex ttl="0" disturl="http://cdn.opensuse.org" distsub="leap-micro" distver="${releasever}" debugenable="false" sourceenable="false"> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/product/repo/Leap-Micro-%{distver}-$DIST_ARCH-Media1" alias="repo-main" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/product/repo/Leap-Micro-%{distver}-$DIST_ARCH-Media2" alias="repo-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/product/repo/Leap-Micro-%{distver}-$DIST_ARCH-Media3" alias="repo-source" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}/%{distver}/sle" alias="repo-sle-update" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> </repoindex> 0707010000000C000081A4000000000000000000000001667549830000033F000000000000000000000000000000000000004300000000openSUSE-repos-20240621.6fd1ef2/opensuse-leap-micro6-repoindex.xml<repoindex ttl="0" disturl="http://cdn.opensuse.org" distsub="leap-micro" distver="${releasever}" debugenable="false" sourceenable="false"> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/product/repo/openSUSE-Leap-Micro-%{distver}-$DIST_ARCH" alias="repo-main" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/product/repo/openSUSE-Leap-Micro-%{distver}-$DIST_ARCH-Debug" alias="repo-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/product/repo/openSUSE-Leap-Micro-%{distver}-$DIST_ARCH-Source" alias="repo-source" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> </repoindex> 0707010000000D000081A400000000000000000000000166754983000002BB000000000000000000000000000000000000004200000000openSUSE-repos-20240621.6fd1ef2/opensuse-leap-ports-repoindex.xml<repoindex ttl="0" disturl="http://cdn.opensuse.org" distsub="leap" distver="${releasever}" debugenable="false" sourceenable="false"> <repo url="%{disturl}/ports/$DIST_ARCH/distribution/%{distsub}/%{distver}/repo/oss" alias="repo-oss" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/source/distribution/%{distsub}/%{distver}/repo/oss" alias="repo-oss-source" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="http://codecs.opensuse.org/openh264/openSUSE_Leap" alias="repo-openh264" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> </repoindex> 0707010000000E000081A40000000000000000000000016675498300000A09000000000000000000000000000000000000003C00000000openSUSE-repos-20240621.6fd1ef2/opensuse-leap-repoindex.xml<repoindex ttl="0" disturl="http://cdn.opensuse.org" distsub="leap" distver="${releasever}" debugenable="false" sourceenable="false"> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/repo/oss" alias="repo-oss" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/distribution/%{distsub}/%{distver}/repo/oss" alias="repo-oss-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/source/distribution/%{distsub}/%{distver}/repo/oss" alias="repo-oss-source" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/distribution/%{distsub}/%{distver}/repo/non-oss" alias="repo-non-oss" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/distribution/%{distsub}/%{distver}/repo/non-oss" alias="repo-non-oss-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="http://codecs.opensuse.org/openh264/openSUSE_Leap" alias="repo-openh264" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}/%{distver}/oss" alias="update-oss" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/update/%{distsub}/%{distver}/oss" alias="update-oss-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}/%{distver}/non-oss" alias="update-non-oss" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/update/%{distsub}/%{distver}/non-oss" alias="update-non-oss-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}/%{distver}/backports" alias="update-backports" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}/%{distver}/backports_debug" alias="update-backports-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}/%{distver}/sle" alias="update-sle" name="%{alias} (%{distver})" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/update/%{distsub}/%{distver}/sle" alias="update-sle-debug" name="%{alias} (%{distver})" enabled="false" autorefresh="true"/> </repoindex> 0707010000000F000081A400000000000000000000000166754983000003E1000000000000000000000000000000000000003F00000000openSUSE-repos-20240621.6fd1ef2/opensuse-microos-repoindex.xml<repoindex ttl="0" disturl="http://cdn.opensuse.org" distsub="tumbleweed" debugenable="false" sourceenable="false"> <repo url="%{disturl}/%{distsub}/repo/oss" alias="repo-oss" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/%{distsub}/repo/oss" alias="repo-oss-debug" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="%{disturl}/source/%{distsub}/repo/oss" alias="repo-oss-source" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="%{disturl}/%{distsub}/repo/non-oss" alias="repo-non-oss" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed" alias="repo-openh264" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}" alias="update-tumbleweed" name="%{alias}" enabled="true" autorefresh="true"/> </repoindex> 07070100000010000081A400000000000000000000000166754983000003FD000000000000000000000000000000000000004000000000openSUSE-repos-20240621.6fd1ef2/opensuse-slowroll-repoindex.xml<repoindex ttl="0" disturl="http://download.opensuse.org" distsub="slowroll" debugenable="false" sourceenable="false"> <repo url="%{disturl}/%{distsub}/repo/oss" alias="repo-oss" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/%{distsub}/repo/oss" alias="repo-oss-debug" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="%{disturl}/source/%{distsub}/repo/oss" alias="repo-oss-source" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="%{disturl}/%{distsub}/repo/non-oss" alias="repo-non-oss" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed" alias="repo-openh264" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}/repo/oss" alias="update-slowroll" name="%{alias}" enabled="true" priority="80" autorefresh="true"/> </repoindex> 07070100000011000081A4000000000000000000000001667549830000039C000000000000000000000000000000000000004800000000openSUSE-repos-20240621.6fd1ef2/opensuse-tumbleweed-ports-repoindex.xml<repoindex ttl="0" disturl="http://cdn.opensuse.org" distsub="tumbleweed" debugenable="false" sourceenable="false"> <repo url="%{disturl}/ports/$DIST_ARCH/%{distsub}/repo/oss" alias="repo-oss" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/ports/$DIST_ARCH/debug/%{distsub}/repo/oss" alias="repo-oss-debug" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="%{disturl}/ports/$DIST_ARCH/source/%{distsub}/repo/oss" alias="repo-oss-source" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed" alias="repo-openh264" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/ports/$DIST_ARCH/update/%{distsub}" alias="update-tumbleweed" name="%{alias}" enabled="true" autorefresh="true"/> </repoindex> 07070100000012000081A400000000000000000000000166754983000003E1000000000000000000000000000000000000004200000000openSUSE-repos-20240621.6fd1ef2/opensuse-tumbleweed-repoindex.xml<repoindex ttl="0" disturl="http://cdn.opensuse.org" distsub="tumbleweed" debugenable="false" sourceenable="false"> <repo url="%{disturl}/%{distsub}/repo/oss" alias="repo-oss" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/debug/%{distsub}/repo/oss" alias="repo-oss-debug" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="%{disturl}/source/%{distsub}/repo/oss" alias="repo-oss-source" name="%{alias}" enabled="false" autorefresh="true"/> <repo url="%{disturl}/%{distsub}/repo/non-oss" alias="repo-non-oss" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed" alias="repo-openh264" name="%{alias}" enabled="true" autorefresh="true"/> <repo url="%{disturl}/update/%{distsub}" alias="update-tumbleweed" name="%{alias}" enabled="true" autorefresh="true"/> </repoindex> 07070100000013000041ED0000000000000000000000016675498300000000000000000000000000000000000000000000002200000000openSUSE-repos-20240621.6fd1ef2/t07070100000014000081ED00000000000000000000000166754983000001E9000000000000000000000000000000000000003300000000openSUSE-repos-20240621.6fd1ef2/t/01-tumbleweed.sh#!lib/test-in-container-systemd.sh tumbleweed set -e mkdir -p /usr/share/zypp/local/service/openSUSE/repo/ ln -sf /opt/project/opensuse-tumbleweed-repoindex.xml /usr/share/zypp/local/service/openSUSE/repo/repoindex.xml zypper addservice /usr/share/zypp/local/service/openSUSE/ openSUSE zypper -vvv ref -s grep -r baseurl /etc/zypp/repos.d grep -r baseurl /etc/zypp/repos.d | grep -q cdn.opensuse.org # make sure we can install a random package zypper -vvvn in vim-small echo success 07070100000015000081ED00000000000000000000000166754983000004AC000000000000000000000000000000000000002D00000000openSUSE-repos-20240621.6fd1ef2/t/02-leap.sh#!lib/test-in-container-systemd.sh leap set -e mkdir -p /usr/share/zypp/local/service/openSUSE/repo/ ln -sf /opt/project/opensuse-leap-repoindex.xml /usr/share/zypp/local/service/openSUSE/repo/repoindex.xml zypper addservice /usr/share/zypp/local/service/openSUSE/ openSUSE echo ======================= curl -is https://cdn.opensuse.org/update/leap/15.5/sle/repodata/repomd.xml curl -is https://download.opensuse.org/update/leap/15.5/sle/repodata/repomd.xml echo ======================= curl -is https://cdn.opensuse.org/update/leap/15.5/sle/repodata/repomd.xml.key curl -is https://download.opensuse.org/update/leap/15.5/sle/repodata/repomd.xml.key echo ======================= curl -is https://cdn.opensuse.org/update/leap/15.5/sle/repodata/repomd.xml.asc curl -is https://download.opensuse.org/update/leap/15.5/sle/repodata/repomd.xml.asc echo ======================= echo ======================= zypper -vvv ref -s || ( tail -n 200 /var/log/zypper.log && ( sleep 1; exit 1 ) ) echo ======================= grep -r baseurl /etc/zypp/repos.d grep -r baseurl /etc/zypp/repos.d | grep -q cdn.opensuse.org # make sure we can install a random package zypper -vvvn in vim-small echo success 07070100000016000081A4000000000000000000000001667549830000005A000000000000000000000000000000000000002B00000000openSUSE-repos-20240621.6fd1ef2/t/Makefile test_container: ( for f in *.sh; do ./$$f && continue; echo FAIL $$f; exit 1 ; done ) 07070100000017000081A40000000000000000000000016675498300000464000000000000000000000000000000000000002C00000000openSUSE-repos-20240621.6fd1ef2/t/README.mdScripts to test using podman containers ------------------- The goal is to cover following workflow: * Change xml files. * Spawn a container, add zypper service. * Check basic installation of a package to verify outcome. The test is set of bash commands. The script relies on shebang to prepare an image and spawn a container. ###### Example: Run test for mysql states: ```bash cd t ./01-tumbleweed.sh ``` #### By default, a container is destroyed when the test finishes. This is to simplify re-run of tests and do not flood machine with leftover containers after tests. To make sure container stays around after faiure - set environment variable *T_PAUSE_ON_FAILURE* to 1 ###### Example: Connect to the container after test failure ```bash > # terminal 1 > echo fail >> 01-tumbleweed.sh > T_PAUSE_ON_FAILURE=1 ./01-tumbleweed.sh ... bash: line 18: fail: command not found Test failed, press any key to finish ``` The terminal will wait for any input to finish the test and clean up the container. Now use another terminal window to check the running podman container and get into it for eventual troubleshooting: 07070100000018000041ED0000000000000000000000016675498300000000000000000000000000000000000000000000002600000000openSUSE-repos-20240621.6fd1ef2/t/lib07070100000019000081ED00000000000000000000000166754983000009E1000000000000000000000000000000000000004300000000openSUSE-repos-20240621.6fd1ef2/t/lib/test-in-container-systemd.sh#!/bin/bash # # Copyright (C) 2024 SUSE LLC # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, see <http://www.gnu.org/licenses/>. last=${@:$#} # last parameter other=${*%${!#}} # all parameters except the last other=$(echo $other) # remove trailing space image="${other##* }" set -euo pipefail test "$image" != "" || (echo empty image, exiting; exit 1) testcase=$last PODMAN=podman ( PODMAN_info="$($PODMAN info >/dev/null 2>&1)" || $PODMAN info [ -n "$testcase" ] || (echo No testcase provided; exit 1) [ -f "$testcase" ] || (echo Cannot find file "$testcase"; exit 1 ) ) >&2 thisdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" basename=$(basename "$testcase") basename=${basename,,} basename=${basename//:/_} ident=opensuse.repo.t.$image containername="$ident.${basename,,}" echo image=$image ( echo image2=$image ) ( echo FROM registry.opensuse.org/opensuse/$image cat << EOF ENV container podman ENV LANG en_US.UTF-8 RUN zypper -vvvn install systemd WORKDIR /opt/project # ENTRYPOINT ["tail", "-f", "/dev/null"] ENTRYPOINT ["/usr/lib/systemd/systemd"] EOF ) | $PODMAN build -t $ident.image -f - $thisdir/../.. $PODMAN run --privileged --rm --name "$containername" -d -v"$thisdir/../..":/opt/project -- $ident.image in_cleanup=0 ret=111 function cleanup { [ "$in_cleanup" != 1 ] || return in_cleanup=1 if [ "$ret" != 0 ] && [ -n "${T_PAUSE_ON_FAILURE-}" ]; then read -rsn1 -p"Test failed, press any key to finish";echo fi [ "$ret" == 0 ] || echo FAIL $basename $PODMAN stop -t 0 "$containername" >&/dev/null || : } trap cleanup INT TERM EXIT counter=1 # wait container start until [ $counter -gt 10 ]; do sleep 0.5 $PODMAN exec "$containername" pwd >& /dev/null && break ((counter++)) done $PODMAN exec "$containername" pwd >& /dev/null || (echo Cannot start container; exit 1 ) >&2 set +e $PODMAN exec -e TESTCASE="$testcase" -i "$containername" bash -xe < "$testcase" ret=$? ( exit $ret ) 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!56 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor