Skip to content

Commit

Permalink
Build in CI (#5)
Browse files Browse the repository at this point in the history
* test build

* build on PR/push

* output to release

* some rename and release/ci workflows

* test release

* wrong os

* wrong path

* Skip signing

* write perms

* clean
  • Loading branch information
ClementTsang committed Apr 23, 2024
1 parent 5c0ca59 commit a2a21a5
Show file tree
Hide file tree
Showing 15 changed files with 253 additions and 113 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Build Barista

on:
workflow_call:
inputs:
save:
description: "Whether to save as an artifact."
default: false
required: false
type: boolean

jobs:
build:
name: Build
runs-on: macos-14
steps:
- name: Checkout repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 1

- name: Build
run: |
mkdir ./build_artifacts
xcodebuild -scheme Barista -configuration Release -derivedDataPath "build_artifacts/DerivedData" -archivePath "build_artifacts/Barista.xcarchive" -skipPackagePluginValidation archive
- name: Save build as artifact
if: inputs.save
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
with:
retention-days: 3
name: build_artifacts
path: build_artifacts
14 changes: 14 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: CI

on:
workflow_dispatch:
pull_request:
push:
branches:
- main

jobs:
test-build:
uses: ./.github/workflows/build.yml
with:
save: false
76 changes: 76 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Builds and releases a .dmg file.

name: Release Barista

on:
workflow_dispatch:

permissions:
contents: write

jobs:
build-release:
uses: ./.github/workflows/build.yml
with:
save: true

upload-release:
name: upload-release
runs-on: macos-14
needs: [build-release]
steps:
- name: Checkout repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 1

- name: Get app version and build number
run: |
APP_VERSION=$(xcrun agvtool mvers -terse1)
APP_BUILD=$(xcrun agvtool vers -terse)
echo "APP_VERSION=$APP_VERSION" >> $GITHUB_ENV
echo "APP_BUILD=$APP_BUILD" >> $GITHUB_ENV
- name: Get build artifacts
uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
with:
pattern: build_artifacts
path: build_artifacts
merge-multiple: true

- name: Generate dmg
run: |
npm install --global create-dmg
mkdir release
create-dmg "build_artifacts/Barista.xcarchive/Products/Applications/Barista.app" "release" || true
- name: Print out all release files
run: |
echo "Generated $(ls ./release | wc -l) files:"
du -h -d 0 ./release/*
- name: Create release and add release files
uses: softprops/action-gh-release@20e085ccc73308c2c8e43ab8da4f8d7ecbb94d4e # 2.0.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
prerelease: false
tag_name: ${{ env.APP_VERSION }}-${{env.APP_BUILD}}
draft: true
fail_on_unmatched_files: true
name: ${{ env.APP_VERSION }}-${{env.APP_BUILD}} Release
body: |
<!-- Write summary here -->
---
## Bug Fixes
## Features
## Changes
## Other
## Internal Changes
files: |
./release/*
Loading

0 comments on commit a2a21a5

Please sign in to comment.