CI: try "styfle/[email protected]" to fix cd.yml #94
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CD | |
on: | |
push: | |
branches: | |
- master | |
release: | |
types: | |
- created | |
jobs: | |
cancel_previous_runs: | |
runs-on: ubuntu-latest | |
name: Cancel Previous Runs | |
permissions: | |
actions: write | |
steps: | |
- uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
test_ubuntu: | |
needs: [cancel_previous_runs] | |
runs-on: ubuntu-latest | |
name: Test Ubuntu | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: .github/scripts/install-ubuntu.sh | |
- name: Build & Test | |
run: .github/scripts/build-ubuntu.sh | |
test_windows: | |
needs: [cancel_previous_runs] | |
runs-on: windows-2019 | |
name: Test Windows | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: .github/scripts/install-windows.sh | |
shell: bash | |
- name: Build & Test | |
run: .github/scripts/build-windows.sh | |
shell: bash | |
test_macos: | |
needs: [cancel_previous_runs] | |
runs-on: macos-latest | |
name: Test macOS | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: .github/scripts/install-macos.sh ci | |
- name: Build & Test | |
run: .github/scripts/build-macos.sh debug arm64 && .github/scripts/build-macos.sh debug x86_64 | |
build_release_windows: | |
needs: [test_ubuntu, test_windows, test_macos] | |
name: Build Release Windows | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: .github/scripts/install-windows.sh | |
shell: bash | |
- name: Build & Test | |
run: .github/scripts/build-windows.sh release | |
shell: bash | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows | |
path: build/bin/RelWithDebInfo/solvespace.exe | |
build_release_windows_openmp: | |
needs: [test_ubuntu, test_windows, test_macos] | |
name: Build Release Windows (OpenMP) | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: .github/scripts/install-windows.sh | |
shell: bash | |
- name: Build & Test | |
run: .github/scripts/build-windows.sh release openmp | |
shell: bash | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-openmp | |
path: build/bin/RelWithDebInfo/solvespace-openmp.exe | |
build_release_macos: | |
needs: [test_ubuntu, test_windows, test_macos] | |
name: Build Release macOS | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: .github/scripts/install-macos.sh ci | |
- name: Build & Test | |
run: .github/scripts/build-macos.sh release arm64 && .github/scripts/build-macos.sh release x86_64 | |
- name: Sign Build | |
run: .github/scripts/sign-macos.sh | |
env: | |
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} | |
MACOS_CERTIFICATE_P12: ${{ secrets.MACOS_CERTIFICATE_P12 }} | |
MACOS_APPSTORE_APP_PASSWORD: ${{ secrets.MACOS_APPSTORE_APP_PASSWORD }} | |
MACOS_APPSTORE_USERNAME: ${{ secrets.MACOS_APPSTORE_USERNAME }} | |
MACOS_DEVELOPER_ID: ${{ secrets.MACOS_DEVELOPER_ID }} | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos | |
path: build/bin/SolveSpace.dmg | |
# deploy_snap_amd64: | |
# needs: [test_ubuntu, test_windows, test_macos] | |
# name: Deploy AMD64 Snap | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Fetch Tags | |
# run: git fetch --force --tags | |
# - name: Set Up Source | |
# run: rsync --filter=":- .gitignore" -r ./ pkg/snap/solvespace-snap-src | |
# - name: Build Snap | |
# uses: snapcore/action-build@v1 | |
# id: build | |
# with: | |
# path: pkg/snap | |
# - name: Upload & Release to Edge | |
# if: github.event_name == 'push' | |
# uses: snapcore/action-publish@v1 | |
# env: | |
# SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPSTORE_LOGIN }} | |
# with: | |
# snap: ${{ steps.build.outputs.snap }} | |
# release: edge | |
# - name: Upload & Release to Beta + Edge | |
# if: github.event_name == 'release' | |
# uses: snapcore/action-publish@v1 | |
# with: | |
# store_login: ${{ secrets.SNAPSTORE_LOGIN }} | |
# snap: ${{ steps.build.outputs.snap }} | |
# release: edge,beta | |
upload_release_assets: | |
name: Upload Release Assets | |
needs: [build_release_windows, build_release_windows_openmp, build_release_macos] | |
if: "!cancelled() && github.event_name == 'release'" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download All Workflow Artifacts | |
uses: actions/download-artifact@v4 | |
- name: Get Release Upload URL | |
id: get_upload_url | |
env: | |
event: ${{ toJson(github.event) }} | |
run: | | |
upload_url=$(echo "$event" | jq -r ".release.upload_url") | |
echo "::set-output name=upload_url::$upload_url" | |
echo "Upload URL: $upload_url" | |
- name: Upload solvespace.exe | |
uses: actions/upload-release-asset@v1 | |
continue-on-error: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_upload_url.outputs.upload_url }} | |
asset_path: windows/solvespace.exe | |
asset_name: solvespace.exe | |
asset_content_type: binary/octet-stream | |
- name: Upload solvespace-openmp.exe | |
uses: actions/upload-release-asset@v1 | |
continue-on-error: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_upload_url.outputs.upload_url }} | |
asset_path: windows-openmp/solvespace-openmp.exe | |
asset_name: solvespace-openmp.exe | |
asset_content_type: binary/octet-stream | |
- name: Upload SolveSpace.dmg | |
uses: actions/upload-release-asset@v1 | |
continue-on-error: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_upload_url.outputs.upload_url }} | |
asset_path: macos/SolveSpace.dmg | |
asset_name: SolveSpace.dmg | |
asset_content_type: binary/octet-stream |