name: Manual Publish Templates on: workflow_dispatch: inputs: templates: description: 'Templates to publish (space-separated, or "all")' required: false default: 'all' type: string bump_version: description: 'Bump version type (major, minor, patch, or none)' required: false default: 'none' type: choice options: - none - patch - minor - major jobs: publish: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 - name: Install dependencies run: | # Install sos tool for uploading curl -o /tmp/sos https://getbin.xyz/sos:latest && chmod +x /tmp/sos sudo mv /tmp/sos /usr/local/bin/sos # Install jq for JSON parsing which jq || sudo apt-get update && sudo apt-get install -y jq # Install tar for packaging which tar || sudo apt-get update && sudo apt-get install -y tar # Install xxhash for calculating template hashes which xxhsum || sudo apt-get update && sudo apt-get install -y xxhash - name: Bump versions if requested if: inputs.bump_version != 'none' run: | chmod +x bump-version.sh if [ "${{ inputs.templates }}" == "all" ]; then ./bump-version.sh --all ${{ inputs.bump_version }} else for template in ${{ inputs.templates }}; do ./bump-version.sh "$template" ${{ inputs.bump_version }} done fi # Show updated versions echo "Updated versions:" cat versions.json - name: Run tests run: | chmod +x test.sh ./test.sh - name: Publish templates run: | chmod +x publish.sh if [ "${{ inputs.templates }}" == "all" ]; then SOS_WRITE_TOKEN=${{ secrets.SOS_WRITE_TOKEN }} \ ./publish.sh --all else SOS_WRITE_TOKEN=${{ secrets.SOS_WRITE_TOKEN }} \ ./publish.sh ${{ inputs.templates }} fi - name: Commit version changes if: inputs.bump_version != 'none' run: | git config --local user.email "actions@gitea.com" git config --local user.name "Gitea Actions" git add versions.json git diff --staged --quiet || git commit -m "chore: bump version(s) via manual publish" git push