1env:
2  GITHUB_TOKEN: ENCRYPTED[1c2ef2877c7f171e40a831f61367e810b57010d6b2eded04f68177e3ec096c3c85619be02f3f0c081fd1eb9b64dd15bb]
3
4macos_universal_task:
5  macos_instance:
6    image: big-sur-xcode
7  env:
8    RUST_HOME: $HOME/macos
9    CARGO_HOME: $RUST_HOME/cargo
10    RUSTUP_HOME: $RUST_HOME/rustup
11    PATH: $CARGO_HOME/bin:$PATH
12  rust_cache:
13    folder: $RUST_HOME
14    reupload_on_changes: true
15    fingerprint_script:
16      - echo $CIRRUS_OS
17      - date +%Y
18    populate_script: >
19      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs |
20      sh -s -- -y --verbose --no-modify-path --target aarch64-apple-darwin
21  update_script: rustup --verbose update
22  target_cache:
23    folder: target
24    reupload_on_changes: true
25    fingerprint_script:
26      - echo $CIRRUS_OS
27      - rustc --version
28  build_script:
29    - cargo build --verbose --release --target aarch64-apple-darwin
30    - mv target/aarch64-apple-darwin/release/yj yj.macos.aarch64
31    - cargo build --verbose --release --target x86_64-apple-darwin
32    - mv target/x86_64-apple-darwin/release/yj yj.macos.x86_64
33    - lipo -create -output yj.macos.universal yj.macos.aarch64 yj.macos.x86_64
34    - file yj.macos.universal
35  binary_artifacts:
36    path: yj.macos.*
37  release_script: ./upload-binary.sh yj.macos.*
38  before_cache_script: rm -f target/.rustc_info.json
39
40linux_x68_64_task:
41  container:
42    image: rust:alpine
43  registry_cache:
44    folder: $CARGO_HOME/registry
45    reupload_on_changes: true
46    fingerprint_script: date +%Y
47  target_cache:
48    folder: target
49    reupload_on_changes: true
50    fingerprint_script:
51      - echo $CIRRUS_OS
52      - rustc --version
53  setup_script:
54    - apk add --no-cache libc-dev
55  build_script:
56    - cargo build --verbose --release
57    - mv target/release/yj yj.$CIRRUS_OS.x86_64
58    - ldd yj.$CIRRUS_OS.x86_64 || echo yay - statically linked
59  binary_artifacts:
60    path: yj.$CIRRUS_OS.*
61  release_script: ./upload-binary.sh yj.$CIRRUS_OS.*
62  before_cache_script: rm -f target/.rustc_info.json
63
64freebsd_x86_task:
65  freebsd_instance:
66    image_family: freebsd-12-2
67  env:
68    RUST_HOME: $HOME/freebsd
69    CARGO_HOME: $RUST_HOME/cargo
70    RUSTUP_HOME: $RUST_HOME/rustup
71    PATH: $CARGO_HOME/bin:$PATH
72  rust_cache:
73    folder: $RUST_HOME
74    reupload_on_changes: true
75    fingerprint_script:
76      - echo $CIRRUS_OS
77      - date +%Y
78    populate_script: >
79      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs |
80      sh -s -- -y --verbose --no-modify-path
81  update_script: rustup --verbose update
82  target_cache:
83    folder: target
84    reupload_on_changes: true
85    fingerprint_script:
86      - echo $CIRRUS_OS
87      - rustc --version
88  build_script:
89    - cargo build --verbose --release
90    - mv target/release/yj yj.$CIRRUS_OS.x86_64
91    - file yj.$CIRRUS_OS.x86_64
92  binary_artifacts:
93    path: yj.$CIRRUS_OS.*
94  release_script: ./upload-binary.sh yj.$CIRRUS_OS.*
95  before_cache_script: rm -f target/.rustc_info.json
96
97windows_x86_task:
98  windows_container:
99    image: cirrusci/windowsservercore:2019
100  env:
101    RUST_HOME: C:\Users\ContainerAdministrator\rust
102    CARGO_HOME: $RUST_HOME\cargo
103    RUSTUP_HOME: $RUST_HOME\rustup
104    PATH: $CARGO_HOME\bin;$PATH
105  vs_cpp_script:
106    - curl -fSLo vs_buildtools.exe https://aka.ms/vs/16/release/vs_buildtools.exe
107    - >
108      vs_buildtools.exe --quiet --wait --norestart --nocache
109      --installPath C:\BuildTools
110      --add Microsoft.Component.MSBuild
111      --add Microsoft.VisualStudio.Component.Windows10SDK.18362
112      --add Microsoft.VisualStudio.Component.VC.Tools.ARM64
113      --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64
114  rust_cache:
115    folder: $RUST_HOME
116    reupload_on_changes: true
117    fingerprint_script:
118      - echo %CIRRUS_OS%
119      - echo plusarm
120      - date /t
121    populate_script:
122      - curl -fSLo rustup-init.exe https://win.rustup.rs/x86_64
123      - rustup-init.exe -y --verbose --target aarch64-pc-windows-msvc
124      - del rustup-init.exe
125  update_script:
126    - rustup --verbose update
127  target_cache:
128    folder: target
129    reupload_on_changes: true
130    fingerprint_script:
131      - echo %CIRRUS_OS%
132      - rustc --version
133  build_script:
134    - cargo build --verbose --release --target aarch64-pc-windows-msvc
135    - move target\aarch64-pc-windows-msvc\release\yj.exe yj.%CIRRUS_OS%.aarch64.exe
136    - cargo build --verbose --release --target x86_64-pc-windows-msvc
137    - move target\x86_64-pc-windows-msvc\release\yj.exe yj.%CIRRUS_OS%.x86_64.exe
138  binary_artifacts:
139    path: yj.%CIRRUS_OS%.*
140  before_cache_script: del target\.rustc_info.json
141