Skip to content

Commit 2f413e4

Browse files
committed
Create workflow for MacOS package deployment
1 parent 9dccf1b commit 2f413e4

File tree

1 file changed

+82
-41
lines changed

1 file changed

+82
-41
lines changed

.github/workflows/deploy.yml

Lines changed: 82 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,96 @@
11
name: MAN deploy-docker
22

33
on:
4-
# release:
5-
# types:
6-
# - published
7-
workflow_dispatch:
4+
release:
5+
types:
6+
- published
87

98
jobs:
10-
deploy-gpu:
11-
runs-on: ubuntu-latest
12-
timeout-minutes: 120
13-
steps:
14-
- name: Checkout repository
15-
uses: actions/checkout@v3
16-
with:
17-
fetch-depth: 0
18-
- name: Login to Docker
19-
uses: docker/login-action@v2
20-
with:
21-
username: ${{ secrets.DOCKERHUB_USERNAME }}
22-
password: ${{ secrets.DOCKERHUB_TOKEN }}
23-
- name: Set up Docker Buildx
24-
uses: docker/setup-buildx-action@v2
25-
- name: Build Docker image GPU
26-
run: python Docker/build.py --device cuda --tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }}
27-
- name: Add additional tags
28-
run: |
29-
docker tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }} ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-latest
30-
docker tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }} ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:latest
31-
- name: Push Docker image GPU
32-
run: docker push --all-tags ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }}
33-
deploy-cpu:
34-
runs-on: ubuntu-latest
9+
deploy-mac:
10+
runs-on: macos-14
3511
timeout-minutes: 120
12+
13+
env:
14+
ARTIFACT_NAME: FastSurfer
15+
VERSION: 242
16+
FREESURFER_URL: https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/7.4.1/freesurfer-macOS-darwin_x86_64-7.4.1.tar.gz
17+
UPLOAD_ARTIFACT: true
18+
3619
steps:
20+
- name: Get repository name.
21+
run: echo "FASTSURFER_DIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
3722
- name: Checkout repository
3823
uses: actions/checkout@v3
3924
with:
4025
fetch-depth: 0
41-
- name: Login to Docker
42-
uses: docker/login-action@v2
26+
- name: Set up python environment
27+
uses: actions/setup-python@v6
4328
with:
44-
username: ${{ secrets.DOCKERHUB_USERNAME }}
45-
password: ${{ secrets.DOCKERHUB_TOKEN }}
46-
- name: Set up Docker Buildx
47-
uses: docker/setup-buildx-action@v2
48-
- name: Build Docker image CPU
49-
run: python Docker/build.py --device cpu --tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-${{ github.event.release.tag_name }}
50-
- name: Add additional tags
29+
python-version: '3.10'
30+
- name: install dependencies
5131
run: |
52-
docker tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-${{ github.event.release.tag_name }} ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-latest
53-
- name: Push Docker image CPU
54-
run: docker push --all-tags ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-${{ github.event.release.tag_name }}
32+
python -m pip install py2app
5533
34+
brew update
35+
brew upgrade || true
36+
brew install xmlstarlet
37+
- name: package app for arm
38+
run: tools/macos_build/build_release_package.sh ${{ env.VERSION }} arm ${{ env.FASTSURFER_DIR }} ${{ env.FREESURFER_URL }}
39+
- name: package app for intel
40+
run: tools/macos_build/build_release_package.sh ${{ env.VERSION }} intel ${{ env.FASTSURFER_DIR }} ${{ env.FREESURFER_URL }}
41+
- name: Move artifact.
42+
if: env.UPLOAD_ARTIFACT == 'true'
43+
run: |
44+
mkdir artifact
45+
mv tools/macos_build/installer/* artifact/
46+
- uses: actions/upload-artifact@v4
47+
if: env.UPLOAD_ARTIFACT == 'true'
48+
name: Upload artifact.
49+
with:
50+
name: ${{ env.ARTIFACT_NAME }}
51+
path: ${{ env.FASTSURFER_DIR }}/artifact/
52+
# deploy-gpu:
53+
# runs-on: ubuntu-latest
54+
# timeout-minutes: 120
55+
# steps:
56+
# - name: Checkout repository
57+
# uses: actions/checkout@v3
58+
# with:
59+
# fetch-depth: 0
60+
# - name: Login to Docker
61+
# uses: docker/login-action@v2
62+
# with:
63+
# username: ${{ secrets.DOCKERHUB_USERNAME }}
64+
# password: ${{ secrets.DOCKERHUB_TOKEN }}
65+
# - name: Set up Docker Buildx
66+
# uses: docker/setup-buildx-action@v2
67+
# - name: Build Docker image GPU
68+
# run: python Docker/build.py --device cuda --tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }}
69+
# - name: Add additional tags
70+
# run: |
71+
# docker tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }} ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-latest
72+
# docker tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }} ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:latest
73+
# - name: Push Docker image GPU
74+
# run: docker push --all-tags ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:gpu-${{ github.event.release.tag_name }}
75+
# deploy-cpu:
76+
# runs-on: ubuntu-latest
77+
# timeout-minutes: 120
78+
# steps:
79+
# - name: Checkout repository
80+
# uses: actions/checkout@v3
81+
# with:
82+
# fetch-depth: 0
83+
# - name: Login to Docker
84+
# uses: docker/login-action@v2
85+
# with:
86+
# username: ${{ secrets.DOCKERHUB_USERNAME }}
87+
# password: ${{ secrets.DOCKERHUB_TOKEN }}
88+
# - name: Set up Docker Buildx
89+
# uses: docker/setup-buildx-action@v2
90+
# - name: Build Docker image CPU
91+
# run: python Docker/build.py --device cpu --tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-${{ github.event.release.tag_name }}
92+
# - name: Add additional tags
93+
# run: |
94+
# docker tag ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-${{ github.event.release.tag_name }} ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-latest
95+
# - name: Push Docker image CPU
96+
# run: docker push --all-tags ${{ secrets.DOCKERHUB_USERNAME }}/fastsurfer:cpu-${{ github.event.release.tag_name }}

0 commit comments

Comments
 (0)