File build.specials.obscpio of Package matugen

07070100000000000081a4000000000000000000000001692fa85100001703000000000000000000000000000000000000002900000000.gitea/workflows/vendor-dependencies.ymlname: Generate Vendor Dependencies

on:
    push:
        branches:
            - master
    workflow_dispatch:

jobs:
    vendor-dependencies:
        runs-on: tumbleweed
        if: "!contains(github.event.head_commit.message, '[skip-vendor]') && github.actor != 'gitea-actions[bot]'"

        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
              with:
                  token: ${{ secrets.GITEA_TOKEN || github.token }}
                  fetch-depth: 2

            - name: Check for changes in matugen.spec
              id: should-version-check
              run: |
                  # Check if matugen.spec has version changes or force update
                  if git diff HEAD~1 HEAD --name-only | grep -q "matugen.spec" || [[ "${{ github.event.head_commit.message }}" == *"[force-vendor]"* ]]; then
                    echo "check_needed=true" >> $GITHUB_OUTPUT
                    echo "Mutagen spec file changed. We should check if the version has changed."
                  else
                    echo "check_needed=false" >> $GITHUB_OUTPUT
                    echo "No version changes in matugen.spec"
                  fi

            - name: Install awk
              if: steps.should-version-check.outputs.check_needed == 'true'
              run: zypper --non-interactive install gawk

            - name: Check for version changes in matugen.spec
              if: steps.should-version-check.outputs.check_needed == 'true'
              id: should-update
              run: |
                  current_version=$(grep "^Version:" matugen.spec | awk '{print $2}')
                  previous_version=$(git show HEAD~1:matugen.spec | grep "^Version:" | awk '{print $2}')
                  if [[ "$current_version" != "$previous_version" ]] || [[ "${{ github.event.head_commit.message }}" == *"[force-vendor]"* ]]; then
                    echo "update_needed=true" >> $GITHUB_OUTPUT
                    echo "version=$current_version" >> $GITHUB_OUTPUT
                    echo "Version changed from $previous_version to $current_version"
                  else
                    echo "update_needed=false" >> $GITHUB_OUTPUT
                    echo "Version unchanged: $current_version"
                  fi

            - name: Download matugen repository
              if: steps.should-update.outputs.update_needed == 'true'
              run: |
                  # Remove existing matugen directory if it exists
                  rm -rf matugen-src

                  # Clone the repository with the specific version tag
                  git clone --depth 1 --branch "v${{ steps.should-update.outputs.version }}" \
                    https://github.com/InioX/matugen.git matugen-src

                  echo "Downloaded matugen v${{ steps.should-update.outputs.version }}"

            - name: Install cargo-vendor
              if: steps.should-update.outputs.update_needed == 'true'
              run: zypper --non-interactive install cargo-vendor-filterer cargo git-lfs

            - name: Generate vendor directory
              if: steps.should-update.outputs.update_needed == 'true'
              run: |
                  cd matugen-src

                  # Clean any existing vendor directory
                  rm -rf vendor/

                  # Generate fresh vendor directory
                  cargo vendor vendor --versioned-dirs > .cargo/config.toml

            - name: Create vendor archive
              if: steps.should-update.outputs.update_needed == 'true'
              run: |
                  cd matugen-src

                  # Remove old archive if it exists
                  rm -f vendor.tar.zst

                  # Create compressed archive
                  tar --zstd -cf vendor.tar.zst vendor/ .cargo/config.toml

                  echo "Created vendor archive: $(du -h vendor.tar.zst)"

            - name: Generate _service file
              if: steps.should-update.outputs.update_needed == 'true'
              run: |
                  cat > _service << 'EOF'
                  <services>
                    <service name="obs_scm">
                      <param name="scm">git</param>
                      <param name="url">https://github.com/InioX/matugen.git</param>
                      <param name="revision">v${{ steps.should-update.outputs.version }}</param>
                      <param name="versionformat">@PARENT_TAG@</param>
                      <param name="versionrewrite-pattern">v(.*)</param>
                      <param name="changesgenerate">enable</param>
                    </service>
                    <service name="tar" mode="buildtime"/>
                  </services>
                  EOF

            - name: Configure git
              if: steps.should-update.outputs.update_needed == 'true'
              run: |
                  git config --local user.email "action@gitea.local"
                  git config --local user.name "Gitea Actions Bot"

            - name: Commit vendor archive
              if: steps.should-update.outputs.update_needed == 'true'
              run: |
                  mv matugen-src/vendor.tar.zst matugen-src/.cargo .

                  # Add the vendor archive and service files to git
                  git add vendor.tar.zst _service

                  # Create commit message with details
                  commit_msg="chore: update vendor dependencies archive [skip-vendor]

                  - Generated from matugen v${{ steps.should-update.outputs.version }}

                  This commit was auto-generated by Gitea Actions."

                  git commit -m "$commit_msg"

            - name: Push changes
              if: steps.should-update.outputs.update_needed == 'true'
              run: |
                  # Push to the current branch
                  git push origin HEAD:${{ github.ref_name }}
07070100000001000041ed000000000000000000000001692fa85100000000000000000000000000000000000000000000001100000000.gitea/workflows07070100000002000041ed000000000000000000000001692fa85100000000000000000000000000000000000000000000000700000000.gitea07070100000003000081a4000000000000000000000001692fa8510000013e000000000000000000000000000000000000000b00000000.gitignore# Vendor dependencies
# Ignore the extracted vendor directory but keep the compressed archive
matugen/vendor/

# Temporary files
*.tmp
*.temp

# OS-specific files
.DS_Store
Thumbs.db

# Editor files
.vscode/
.idea/
*.swp
*.swo
*~

# Logs
*.log

# Build artifacts that might be generated during testing
matugen/target/
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!
openSUSE Build Service is sponsored by