Skip to content

Prepare public OSS release surface #140

Prepare public OSS release surface

Prepare public OSS release surface #140

Workflow file for this run

name: CI
on:
push:
pull_request:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-test:
runs-on: macos-latest
timeout-minutes: 30
env:
SWIFTFORMAT_VERSION: 0.61.1
SWIFTFORMAT_SHA256: b990400779aceb7d7020796eb9ba814d4480543f671d38fc0ff48cb72f04c584
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24
cache: npm
- name: Install JS dependencies
run: npm ci
- name: Lint JS
run: npm run lint
- name: Check JS formatting
run: npm run format:check
- name: JS tests
run: npm test
- name: Audit JS dependencies
run: |
npm audit --omit=dev
npm audit
npm audit signatures
- name: Package VS Code extension
run: |
npm run package
script/tests/vsix_inventory_test.sh
- name: Install SwiftFormat
run: |
archive="$RUNNER_TEMP/swiftformat.zip"
install_dir="$RUNNER_TEMP/swiftformat"
curl --fail --location --silent --show-error \
--output "$archive" \
"https://github.com/nicklockwood/SwiftFormat/releases/download/$SWIFTFORMAT_VERSION/swiftformat.zip"
echo "$SWIFTFORMAT_SHA256 $archive" | shasum --algorithm 256 --check
unzip -q "$archive" -d "$install_dir"
echo "$install_dir" >> "$GITHUB_PATH"
- name: SwiftFormat lint
run: |
test "$(swiftformat --version)" = "$SWIFTFORMAT_VERSION"
swiftformat --lint .
- name: Swift tests
run: cd SwiftExplorerApp && swift test
- name: Swift Release build with warnings as errors
run: cd SwiftExplorerApp && swift build -c release -Xswiftc -warnings-as-errors
- name: Shell contracts
run: |
bash -n Packaging/AppStore/build_app_store_package.sh
bash -n Packaging/DeveloperID/build_release.sh
bash -n Packaging/DeveloperID/notarize_release.sh
bash Packaging/AppStore/tests/validate_provisioning_profile_test.sh
bash script/tests/build_and_run_contract_test.sh
bash script/tests/open_source_release_contract_test.sh
- name: Developer ID release contracts
run: Packaging/DeveloperID/tests/run_tests.sh
- name: App Store bundle validation
run: |
plutil -lint Packaging/AppStore/AppStore.entitlements
plutil -lint Packaging/AppStore/Info.plist.in
plutil -lint Packaging/AppStore/PrivacyInfo.xcprivacy
Packaging/AppStore/tests/build_app_store_package_contract_test.sh