agama/.github/workflows/obs-service-shared.yml
Martin Vidner 0a4658f3fa chore: shorten complex expressions with env.obs_project
But, on jobs.JOBID.if, env CANNOT be used because... GitHub docs say so:
https://docs.github.com/en/actions/reference/workflows-and-actions/contexts#context-availability

(the VS Code GitHub Actions extension will helpfully flag it
fortunately)
2026-04-20 14:06:56 +02:00

79 lines
2.3 KiB
YAML

# this is a shared workflow, not called as a top level workflow
name: Update OBS Service Package
permissions:
contents: read
on:
workflow_call:
secrets:
OBS_PASSWORD:
required: true
env:
obs_project: ${{ fromJson(vars.OBS_PROJECTS)[github.ref_name] }}
jobs:
update_service:
# do not run in forks which do not set the OBS_PROJECTS and OBS_USER variables,
# or the mapping for the current branch is missing
# (BTW, jobs.FOO.if cannot see env.*)
if: vars.OBS_PROJECTS && fromJson(vars.OBS_PROJECTS)[github.ref_name] && vars.OBS_USER
runs-on: ubuntu-latest
container:
image: registry.opensuse.org/opensuse/tumbleweed:latest
env:
# to avoid Ruby UTF-8 errors (the default is "POSIX")
LC_ALL: en_US.UTF-8
steps:
- name: Configure and refresh repositories
# disable unused repositories to have a faster refresh
run: zypper modifyrepo -d repo-non-oss repo-openh264 repo-update && zypper ref
- name: Install tools
run: zypper --non-interactive install --no-recommends
bzip2
diffutils
git
obs-service-format_spec_file
osc
ruby
'rubygem(gem2rpm)'
'rubygem(yast-rake)'
- name: Git Checkout (full history)
if: ${{ github.ref_type != 'tag' }}
uses: actions/checkout@v6
with:
# fetch all history, we need to find the latest tag and offset for the version number
fetch-depth: 0
- name: Configure git
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Git Checkout
uses: actions/checkout@v6
with:
# fetch all history with tags, we need to find the latest version tag
fetch-depth: 0
fetch-tags: true
- name: Configure osc
run: .github/workflows/configure_osc.sh
env:
OBS_USER: ${{ vars.OBS_USER }}
OBS_PASSWORD: ${{ secrets.OBS_PASSWORD }}
- name: Commit the rubygem-agama-yast package to ${{ env.obs_project }}
run: rake osc:commit
working-directory: ./service
env:
# do not build the package with "osc", it takes long time
# and does not provide much value
SKIP_OSC_BUILD: 1
OBS_PROJECT: ${{ env.obs_project }}