From 4be236073afbc7fb6003ee476a20b1710ba4c6bf Mon Sep 17 00:00:00 2001 From: Steven Sherry Date: Fri, 12 Apr 2024 10:55:06 -0500 Subject: [PATCH] chore: Separate original workflow to make build and release logic reusuable for different triggers --- .github/workflows/build-and-release.yaml | 44 ++++++++++++++++++++++++ .github/workflows/pre-release.yml | 38 +++++--------------- 2 files changed, 53 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/build-and-release.yaml diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml new file mode 100644 index 0000000..c207e71 --- /dev/null +++ b/.github/workflows/build-and-release.yaml @@ -0,0 +1,44 @@ +name: Build and Release + +on: + workflow_call: + inputs: + release-version: + required: true + type: string + draft-flag: + type: string + default: -draft + secrets: + XCFRAMEWORK_SIGNING_TOKEN: + required: true + GITHUB_TOKEN: + required: true + +jobs: + build: + runs-on: macos-14 + timeout-minutes: 30 + steps: + - run: sudo xcode-select --switch /Applications/Xcode_15.1.app + - uses: actions/checkout@v4 + - name: Install dependencies + run: brew install ghr + - name: Build Capacitor and Cordova + run: ./build-cap ${{ inputs.release-version }} + - name: Sign Capacitor xcframework + uses: ionic-team/sign-xcframework@main + with: + cert-token: ${{ secrets.XCFRAMEWORK_SIGNING_TOKEN }} + xcframework-path: Capacitor.xcframework + - name: Sign Cordova xcframework + uses: ionic-team/sign-xcframework@main + with: + cert-token: ${{ secrets.XCFRAMEWORK_SIGNING_TOKEN }} + xcframework-path: Cordova.xcframework + - name: Package Capacitor and Cordova + run: ./package-cap ${{ inputs.release-version }} + - name: Push manifest update + uses: EndBug/add-and-commit@v9 + - name: Create Release + run: ghr -token ${{ secrets.GITHUB_TOKEN }} -name ${{ inputs.release-version }} ${{ inputs.draft-flag }} -replace ${{ inputs.release-version }} frameworks diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 8591455..8387fcc 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -6,33 +6,13 @@ on: - "release/**" jobs: - build: - runs-on: macos-14 - timeout-minutes: 30 + release-version: + runs-on: ubuntu-latest steps: - - run: sudo xcode-select --switch /Applications/Xcode_15.1.app - - uses: actions/checkout@v4 - - name: Install build dependencies - run: | - gem install cocoapods xcpretty - brew install ghr - - name: Assign version to RELEASE_VERSION environment variable - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/*/}" >> $GITHUB_ENV - - name: Build Capacitor and Cordova - run: ./build-cap $RELEASE_VERSION - - name: Sign Capacitor xcframework - uses: ionic-team/sign-xcframework@main - with: - cert-token: ${{ secrets.XCFRAMEWORK_SIGNING_TOKEN }} - xcframework-path: Capacitor.xcframework - - name: Sign Cordova xcframework - uses: ionic-team/sign-xcframework@main - with: - cert-token: ${{ secrets.XCFRAMEWORK_SIGNING_TOKEN }} - xcframework-path: Cordova.xcframework - - name: Package Capacitor and Cordova - run: ./package-cap $RELEASE_VERSION - - name: Push manifest update - uses: EndBug/add-and-commit@v9 - - name: Create Draft Release - run: ghr -token ${{ secrets.GITHUB_TOKEN }} -name ${{ env.RELEASE_VERSION }} -draft -replace ${{ env.RELEASE_VERSION }} frameworks + - run: echo "release_version=${GITHUB_REF#refs/*/*}" >> $GITHUB_OUTPUT + create-pre-release: + needs: release-version + uses: ./github/workflows/build-and-release.yaml + with: + release-version: ${{ jobs.release-version.outputs.release_version }} + secrets: inherit