4444path :build/automate.phar
4545
4646static-binary :
47- name :Build static binary ${{ matrix.os }} ${{ matrix.arch }}
47+ name :Build static binary ${{ matrix.filename }}
4848if :github.event_name == 'release'
4949needs :[ phar ]
5050strategy :
@@ -54,13 +54,18 @@ jobs:
5454# Linux amd64
5555 -runs_on :ubuntu-latest
5656spc_binary :https://dl.static-php.dev/static-php-cli/spc-bin/nightly/spc-linux-x86_64
57- os : linux
58- arch : amd64
57+ build_options : --build-micro --with-upx-pack
58+ filename : automate-linux- amd64
5959# MacOS amd64
6060 -runs_on :macos-latest
6161spc_binary :https://dl.static-php.dev/static-php-cli/spc-bin/nightly/spc-macos-x86_64
62- os :darwin
63- arch :amd64
62+ build_options :--build-micro
63+ filename :automate-darwin-amd64
64+ # MacOS arm64
65+ -runs_on :macos-14
66+ spc_binary :https://dl.static-php.dev/static-php-cli/spc-bin/nightly/spc-macos-aarch64
67+ build_options :--build-micro
68+ filename :automate-darwin-arm64
6469
6570runs-on :${{ matrix.runs_on }}
6671steps :
@@ -86,20 +91,25 @@ jobs:
8691run :|
8792 bin/spc doctor --auto-fix
8893
94+ -name :Install UPX package
95+ if :${{ contains(matrix.build_options, 'upx') }}
96+ run :|
97+ bin/spc install-pkg upx
98+
8999 -name :Build static binary
90100run :|
91- bin/spc download --for-extensions="dom,gmp,openssl,phar,sodium,xml,xmlwriter"
92- bin/spc build "dom,gmp,openssl,phar,sodium,xml,xmlwriter"--build-micro
93- bin/spc micro:combine build/automate.phar --output build/automate- ${{ matrix.os }}-${{ matrix.arch }}
101+ bin/spc download --for-extensions="dom,gmp,openssl,phar,sodium,xml,xmlwriter" --with-php=8.3
102+ bin/spc build "dom,gmp,openssl,phar,sodium,xml,xmlwriter"${{ matrix.build_options }}
103+ bin/spc micro:combine build/automate.phar --output build/${{ matrix.filename }}
94104
95105 -name :Ensure the static binary works
96- run :build/automate- ${{ matrix.os }}-${{ matrix.arch }} --version
106+ run :build/${{ matrix.filename }} --version
97107
98108 -uses :actions/upload-artifact@v4
99109name :Upload the static binary artifact
100110with :
101- name :automate- ${{ matrix.os }}-${{ matrix.arch }}
102- path :build/automate- ${{ matrix.os }}-${{ matrix.arch }}
111+ name :${{ matrix.filename }}
112+ path :build/${{ matrix.filename }}
103113
104114release :
105115name :Upload artifacts to the release