1111
1212jobs :
1313 job-matrix :
14- name : ${{ matrix.os }}; ${{ matrix.cross-target }}
14+ name : ${{ matrix.os }}; release:${{ matrix.release-build }}; ${{ matrix.cross-target }}
1515 runs-on : ${{ matrix.os }}
1616 strategy :
1717 fail-fast : true
1818 matrix :
1919 include :
2020 - os : ubuntu-latest
21+ - os : ubuntu-latest
22+ release-build : true
23+
24+ - os : macos-latest
25+ - os : macos-latest
26+ release-build : true
27+
2128 - os : macos-latest
29+ cross-target : aarch64-apple-darwin
2230 - os : macos-latest
2331 cross-target : aarch64-apple-darwin
32+ release-build : true
2433
2534 steps :
2635 - uses : actions/checkout@v2
2736
28- - name : Set build-target outputs
29- id : set-build-target
37+ - name : Set outputs
38+ id : set-outputs
3039 run : |
3140 if [[ "${{ matrix.cross-target }}" ]]; then
3241 echo "::set-output name=build-target::${{ matrix.cross-target }}"
3948 exit 1
4049 fi
4150
51+ if [[ "${{ matrix.release-build }}" ]]; then
52+ echo "::set-output name=release-build-option::--release"
53+ echo "::set-output name=build-type::release"
54+ else
55+ echo "::set-output name=release-build-option::"
56+ echo "::set-output name=build-type::debug"
57+ fi
58+
4259 - name : Install Rust stable
4360 uses : actions-rs/toolchain@v1
4461 with :
@@ -52,48 +69,28 @@ jobs:
5269 run : |
5370 rustup target add ${{ matrix.cross-target }}
5471
55- - name : debug build (straight build)
56- if : ${{ ! matrix.cross-target }}
57- run : |
58- cargo build
59-
60- - name : debug build (cross build)
61- if : ${{ matrix.cross-target }}
72+ - name : build (${{ steps.set-outputs.outputs.build-type }}; ${{ matrix.cross-target }})
6273 run : |
63- cargo build --target=${{ matrix.cross-target }}
64- ls target/debug/
65- find target/debug/
74+ cargo build ${{ steps.set-outputs.outputs.release-build-option }} --target=${{ matrix.cross-target }}
6675
67- - name : create debug artifact
76+ - name : create artifact
6877 run : |
69- d =springql_client-${{ steps.set-build-target. outputs.build-target }}-debug
70- mkdir ${d }
78+ artifact_dir =springql_client-${{ steps.set-outputs.outputs. build-target }}-${{ steps.set- outputs.outputs. build-type }}
79+ target_dir=target/${{ matrix.cross-target }}/${{ steps.set-outputs.outputs.build-type } }
7180
72- cp springql.h ${d}/
73- mv target/debug/libspringql_client.{so,dylib} ${d}/ || :
74-
75- zip -r ${d}.zip ${d}
76-
77- - name : release build (straight build)
78- if : ${{ ! matrix.cross-target }}
79- run : |
80- cargo build --release
81- - name : create release artifact
82- run : |
83- d=springql_client-${{ steps.set-build-target.outputs.build-target }}-release
84- mkdir ${d}
81+ mkdir ${artifact_dir}
8582
86- cp springql.h ${d }/
87- mv target/release/ libspringql_client.{so,dylib} ${d }/ || :
83+ cp springql.h ${artifact_dir }/
84+ mv ${target_dir}/ libspringql_client.{so,dylib} ${artifact_dir }/ || :
8885
89- zip -r ${d }.zip ${d }
86+ zip -r ${artifact_dir }.zip ${artifact_dir }
9087
91- # - name: Upload Files to a GitHub Release (${{ steps.set-build-target .outputs.os }})
88+ # - name: Upload Files to a GitHub Release (${{ steps.set-outputs .outputs.os }})
9289 # uses: svenstaro/upload-release-action@2.2.1
9390 # with:
9491 # repo_token: ${{ secrets.GITHUB_TOKEN }}
9592 # file_glob: true
96- # file: springql_client-${{ steps.set-build-target .outputs.os }}-*.zip
93+ # file: springql_client-${{ steps.set-outputs .outputs.os }}-*.zip
9794 # tag: ${{ github.ref }}
9895 # overwrite: true
9996 # prerelease: false
0 commit comments