Skip to content

ci: authenticate with the App's client ID #28

ci: authenticate with the App's client ID

ci: authenticate with the App's client ID #28

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
build-and-test:
runs-on: macos-26
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Select Xcode 26 / Swift 6.2+
run: sudo xcode-select -s /Applications/Xcode_26.0.app/Contents/Developer
- name: Build with complete concurrency checking
run: swift build -c release -Xswiftc -strict-concurrency=complete -Xswiftc -warnings-as-errors
- name: Test
run: swift test -Xswiftc -strict-concurrency=complete -Xswiftc -warnings-as-errors
- name: Schema contract tests
run: swift test --filter ToolSchemaContractTests
# Tags and publishes a GitHub Release once build-and-test has passed on this
# exact commit. The version comes from the conventional commit subjects since
# the last tag, which squash-only merging makes the PR titles (pr-title.yml).
release:
needs: build-and-test
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
concurrency:
group: release
cancel-in-progress: false
steps:
# An App token rather than GITHUB_TOKEN: events from GITHUB_TOKEN don't
# start other workflows, and the tag this pushes has to fire bump-tap.yml.
- name: Mint a release token
id: app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ secrets.TAP_APP_CLIENT_ID }}
private-key: ${{ secrets.TAP_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
repositories: EventKitMCP
permission-contents: write
permission-pull-requests: write
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
- name: Install release tooling
run: npm clean-install --ignore-scripts
- name: Verify registry signatures of the release tooling
run: npm audit signatures
- name: Release
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
run: npx semantic-release