Skip to content

Release artifact

Release artifact #1

Workflow file for this run

name: Release artifact
on:
workflow_dispatch:
push:
tags:
- 'v*'
permissions:
contents: read
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false
jobs:
build-release:
name: Test and package
runs-on: macos-26
timeout-minutes: 60
env:
DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer
steps:
- name: Check out source
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
persist-credentials: false
- name: Verify Xcode 26.6
shell: bash
run: |
set -euo pipefail
version_output="$("${DEVELOPER_DIR}/usr/bin/xcodebuild" -version)"
grep -Fxq 'Xcode 26.6' <<< "$version_output"
grep -Fxq 'Build version 17F113' <<< "$version_output"
- name: Install betterleaks
env:
HOMEBREW_NO_AUTO_UPDATE: '1'
run: brew install betterleaks
- name: Test PhotoImportCore
run: /usr/bin/xcrun swift test --package-path Packages/PhotoImportCore
- name: Test PhotoImportPlatformMac
run: /usr/bin/xcrun swift test --package-path Packages/PhotoImportPlatformMac
- name: Test app unit tests
run: |
"$DEVELOPER_DIR/usr/bin/xcodebuild" test \
-project PicChronoImporter.xcodeproj \
-scheme PicChronoImporter \
-destination 'platform=macOS' \
-derivedDataPath "$RUNNER_TEMP/PicChronoImporterTests" \
-only-testing:PicChronoImporterTests
- name: Build and verify release artifacts
id: release
run: scripts/build-release.sh --output-dir "$RUNNER_TEMP/release"
- name: Upload release artifacts
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ steps.release.outputs.artifact_name }}
path: |
${{ steps.release.outputs.package_path }}
${{ steps.release.outputs.checksum_path }}
${{ steps.release.outputs.manifest_path }}
if-no-files-found: error
retention-days: 30
compression-level: 0