name: Release Home-Assistant-Matter-Hub on: repository_dispatch: event_name: release # client_payload: # project: "hamh" # channel: "latest" | "beta" | "alpha" # version: "3.0.0-alpha.33" # changelogUrl: "https://..." jobs: release: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get Version id: event_parser run: | PROJECT="${{ github.event.client_payload.project }}" CHANNEL="${{ github.event.client_payload.channel }}" if [ "$CHANNEL" != "latest" ]; then PROJECT="$PROJECT-$CHANNEL" fi echo "project=$PROJECT" >> "$GITHUB_OUTPUT" echo "channel=$CHANNEL" >> "$GITHUB_OUTPUT" echo "version=${{ github.event.client_payload.version }}" >> "$GITHUB_OUTPUT" echo "changelogUrl=${{ github.event.client_payload.changelogUrl }}" >> "$GITHUB_OUTPUT" if [ ! -d "$PROJECT" ]; then echo "No Project: $PROJECT" exit 1 fi - run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" - name: Copy Changelog env: CHANGELOG_FILE: ${{steps.event_parser.outputs.project}}/CHANGELOG.md run: | curl -L "${{ steps.event_parser.outputs.changelogUrl }}" > $CHANGELOG_FILE git add $CHANGELOG_FILE - name: Apply release version env: CONFIG_FILE: ${{steps.event_parser.outputs.project}}/config.yaml run: | yq -i ".version = \"${{ steps.event_parser.outputs.version }}\"" $CONFIG_FILE git add $CONFIG_FILE - name: Publish run: | git commit -m "bumb(${{steps.event_parser.outputs.project}}): bumb to version ${{ steps.event_parser.outputs.version }}" git push origin main