Skip to content

Commit

Permalink
alternate darwin build
Browse files Browse the repository at this point in the history
storybehind committed Aug 23, 2024
1 parent 817b714 commit 3580449
Showing 1 changed file with 107 additions and 28 deletions.
135 changes: 107 additions & 28 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -145,9 +145,9 @@ jobs:
asset_path: ${{ env.OUTPUT_DIR }}/${{ env.APP_NAME }}-linux-arm64.zip
asset_name: ${{ env.APP_NAME }}-linux-arm64.zip
asset_content_type: application/zip

darwin:
runs-on: ubuntu-latest
darwin:
runs-on: macos-latest
needs: create_release
env:
SRC_DIR: ${{ github.workspace }}/src
@@ -157,40 +157,31 @@ jobs:
uses: actions/checkout@v2
with:
path: ${{ env.SRC_DIR }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64


- name: Install zip
uses: montudor/action-zip@v1

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.21'

- name: Setup
run : |
mkdir -p ${{ env.OUTPUT_DIR }}/amd64
mkdir -p ${{ env.OUTPUT_DIR }}/arm64
cp ${{ env.SRC_DIR }}/cmd/config.yaml ${{ env.OUTPUT_DIR }}/amd64/
cp ${{ env.SRC_DIR }}/cmd/config.yaml ${{ env.OUTPUT_DIR }}/arm64/
- name: Build Docker image
- name: Build ${{ env.APP_NAME }} for amd64
run: |
docker buildx create --use
docker buildx build \
--platform linux/amd64 \
--build-arg VERSION=${{ env.VERSION }} \
--tag ${{ env.APP_NAME }} \
--load \
--output type=docker,dest=${{ env.OUTPUT_DIR }}/${{ env.APP_NAME }}.tar \
-f ${{ env.SRC_DIR }}/scripts/darwin/Dockerfile.build ${{ env.SRC_DIR }}
cd ${{ env.SRC_DIR }}
CGO_CFLAGS="-mmacosx-version-min=12.0" CGO_LDFLAGS="-mmacosx-version-min=12.0" GOOS=darwin GOARCH=amd64 go build -x -v -tags bn256 -ldflags "-X main.VersionStr=v${{ env.VERSION }}" -o ${{ env.OUTPUT_DIR }}/amd64/${{ env.APP_NAME }} .
- name: Load image & Extract binary from container
- name: Build ${{ env.APP_NAME }} for arm64
run: |
docker load -i ${{ env.OUTPUT_DIR }}/${{ env.APP_NAME }}.tar
CONTAINER_ID=$(docker create ${{ env.APP_NAME }})
docker cp ${CONTAINER_ID}:/go/bin/zboxcli-darwin-amd64 ${{ env.OUTPUT_DIR }}/amd64/${{ env.APP_NAME }}
docker cp ${CONTAINER_ID}:/go/bin/zboxcli-darwin-arm64 ${{ env.OUTPUT_DIR }}/arm64/${{ env.APP_NAME }}
docker rm ${CONTAINER_ID}
cd ${{ env.SRC_DIR }}
CGO_CFLAGS="-mmacosx-version-min=12.0" CGO_LDFLAGS="-mmacosx-version-min=12.0" GOOS=darwin GOARCH=arm64 go build -x -v -tags bn256 -ldflags "-X main.VersionStr=v${{ env.VERSION }}" -o ${{ env.OUTPUT_DIR }}/arm64/${{ env.APP_NAME }} .
- name: Create Zip File for darwin/amd64
run: |
@@ -214,7 +205,7 @@ jobs:
name: ${{ env.APP_NAME }}-darwin-arm64
path: ${{ env.OUTPUT_DIR }}/arm64/${{ env.APP_NAME }}-darwin-arm64.zip

- name: Upload Release Asset for Linux/amd64
- name: Upload Release Asset for Darwin/amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -224,12 +215,100 @@ jobs:
asset_name: ${{ env.APP_NAME }}-darwin-amd64.zip
asset_content_type: application/zip

- name: Upload Release Asset for Linux/arm64
- name: Upload Release Asset for Darwin/arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ${{ env.OUTPUT_DIR }}/arm64/${{ env.APP_NAME }}-darwin-arm64.zip
asset_name: ${{ env.APP_NAME }}-darwin-arm64.zip
asset_content_type: application/zip
asset_content_type: application/zip

# darwin:
# runs-on: ubuntu-latest
# needs: create_release
# env:
# SRC_DIR: ${{ github.workspace }}/src
# OUTPUT_DIR: ${{ github.workspace }}/output
# steps:
# - name: Checkout code
# uses: actions/checkout@v2
# with:
# path: ${{ env.SRC_DIR }}

# - name: Set up QEMU
# uses: docker/setup-qemu-action@v3
# with:
# platforms: linux/amd64,linux/arm64

# - name: Install zip
# uses: montudor/action-zip@v1

# - name: Setup
# run : |
# mkdir -p ${{ env.OUTPUT_DIR }}/amd64
# mkdir -p ${{ env.OUTPUT_DIR }}/arm64
# cp ${{ env.SRC_DIR }}/cmd/config.yaml ${{ env.OUTPUT_DIR }}/amd64/
# cp ${{ env.SRC_DIR }}/cmd/config.yaml ${{ env.OUTPUT_DIR }}/arm64/

# - name: Build Docker image
# run: |
# docker buildx create --use
# docker buildx build \
# --platform linux/amd64 \
# --build-arg VERSION=${{ env.VERSION }} \
# --tag ${{ env.APP_NAME }} \
# --load \
# --output type=docker,dest=${{ env.OUTPUT_DIR }}/${{ env.APP_NAME }}.tar \
# -f ${{ env.SRC_DIR }}/scripts/darwin/Dockerfile.build ${{ env.SRC_DIR }}

# - name: Load image & Extract binary from container
# run: |
# docker load -i ${{ env.OUTPUT_DIR }}/${{ env.APP_NAME }}.tar
# CONTAINER_ID=$(docker create ${{ env.APP_NAME }})
# docker cp ${CONTAINER_ID}:/go/bin/zboxcli-darwin-amd64 ${{ env.OUTPUT_DIR }}/amd64/${{ env.APP_NAME }}
# docker cp ${CONTAINER_ID}:/go/bin/zboxcli-darwin-arm64 ${{ env.OUTPUT_DIR }}/arm64/${{ env.APP_NAME }}
# docker rm ${CONTAINER_ID}

# - name: Create Zip File for darwin/amd64
# run: |
# cd ${{ env.OUTPUT_DIR }}/amd64
# zip -qq -r ${{ env.APP_NAME }}-darwin-amd64.zip ${{ env.APP_NAME }} config.yaml

# - name: Upload Zip for Darwin/amd64
# uses: actions/upload-artifact@v3
# with:
# name: ${{ env.APP_NAME }}-darwin-amd64
# path: ${{ env.OUTPUT_DIR }}/amd64/${{ env.APP_NAME }}-darwin-amd64.zip

# - name: Create Zip File for darwin/arm64
# run: |
# cd ${{ env.OUTPUT_DIR }}/arm64
# zip -qq -r ${{ env.APP_NAME }}-darwin-arm64.zip ${{ env.APP_NAME }} config.yaml

# - name: Upload Zip for Darwin/arm64
# uses: actions/upload-artifact@v3
# with:
# name: ${{ env.APP_NAME }}-darwin-arm64
# path: ${{ env.OUTPUT_DIR }}/arm64/${{ env.APP_NAME }}-darwin-arm64.zip

# - name: Upload Release Asset for Linux/amd64
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ${{ env.OUTPUT_DIR }}/amd64/${{ env.APP_NAME }}-darwin-amd64.zip
# asset_name: ${{ env.APP_NAME }}-darwin-amd64.zip
# asset_content_type: application/zip

# - name: Upload Release Asset for Linux/arm64
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ${{ env.OUTPUT_DIR }}/arm64/${{ env.APP_NAME }}-darwin-arm64.zip
# asset_name: ${{ env.APP_NAME }}-darwin-arm64.zip
# asset_content_type: application/zip

0 comments on commit 3580449

Please sign in to comment.