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)
79 lines
2.3 KiB
YAML
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 }}
|