firmware/.github/workflows/package_obs.yml

104 lines
3.2 KiB
YAML

name: Package for OpenSUSE Build Service
on:
workflow_call:
secrets:
PPA_GPG_PRIVATE_KEY:
required: true
inputs:
obs_repo:
description: Meshtastic OBS repo to target
required: true
type: string
series:
description: Debian series to target
required: true
type: string
permissions:
contents: write
packages: write
jobs:
build-debian-src:
uses: ./.github/workflows/build_debian_src.yml
secrets: inherit
with:
series: ${{ inputs.series }}
build_location: obs
package-obs:
runs-on: ubuntu-24.04
needs: build-debian-src
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
path: meshtasticd
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Install OpenSUSE Build Service deps
shell: bash
run: |
echo 'deb http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/openSUSE:Tools.list
curl -fsSL https://download.opensuse.org/repositories/openSUSE:Tools/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/openSUSE_Tools.gpg > /dev/null
sudo apt-get update -y --fix-missing
sudo apt-get install -y osc
- name: Get release version string
working-directory: meshtasticd
run: |
echo "deb=$(./bin/buildinfo.py deb)" >> $GITHUB_OUTPUT
env:
BUILD_LOCATION: obs
id: version
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: firmware-debian-${{ steps.version.outputs.deb }}~${{ inputs.series }}-src
merge-multiple: true
- name: Display structure of downloaded files
run: ls -lah
# - name: Configure osc
# shell: bash
# env:
# OBS_USERNAME: ${{ secrets.OBS_USERNAME }}
# OBS_PASSWORD: ${{ secrets.OBS_PASSWORD }}
# run: |
# mkdir -p ~/.config/osc
# echo -e "[https://api.opensuse.org]\n" > ~/.config/osc/oscrc
# echo -e "user = $OBS_USERNAME" >> ~/.config/osc/oscrc
# echo -e "pass = $OBS_PASSWORD" >> ~/.config/osc/oscrc
# echo -e "aliases = obs" >> ~/.config/osc/oscrc
# # Authenticate to OBS
# osc meta prj -v
# - name: Upload Package to OBS
# shell: bash
# run: |
# # Define your OBS project and repository
# OBS_PROJECT="application:meshtastic"
# OBS_REPO="${{ inputs.obs_repo }}"
# # Create a temporary directory for osc
# mkdir -p /tmp/osc/$OBS_PROJECT/$OBS_REPO
# cd /tmp/osc/$OBS_PROJECT/$OBS_REPO
# # Initialize the package directory
# osc checkout $OBS_PROJECT $OBS_REPO
# # Copy package files to the osc directory
# cp $GITHUB_WORKSPACE/*.dsc .
# cp $GITHUB_WORKSPACE/*.tar.xz .
# # Add files to osc
# osc addremove
# # Commit and push the changes
# osc commit -m "Automated upload from GitHub Actions"