4 # - cron: '0 0 * * *' # midnight UTC
8 - 'v[0-9]+.[0-9]+.[0-9]+'
14 runs-on: ${{ matrix.os }}
16 fail-fast: false # don't fail other jobs if one fails
18 build: [x86_64-linux, aarch64-linux, x86_64-macos, x86_64-windows] #, x86_64-win-gnu, win32-msvc
23 target: x86_64-unknown-linux-gnu
25 - build: aarch64-linux
28 target: aarch64-unknown-linux-gnu
33 target: x86_64-apple-darwin
35 - build: x86_64-windows
38 target: x86_64-pc-windows-msvc
40 # - build: aarch64-macos
43 # target: aarch64-apple-darwin
44 # - build: x86_64-win-gnu
46 # rust: stable-x86_64-gnu
47 # target: x86_64-pc-windows-gnu
51 # target: i686-pc-windows-msvc
54 - name: Checkout sources
55 uses: actions/checkout@v2
59 - name: Install ${{ matrix.rust }} toolchain
60 uses: actions-rs/toolchain@v1
63 toolchain: ${{ matrix.rust }}
64 target: ${{ matrix.target }}
67 - name: Run cargo test
68 uses: actions-rs/cargo@v1
70 use-cross: ${{ matrix.cross }}
72 args: --release --locked --target ${{ matrix.target }}
74 - name: Build release binary
75 uses: actions-rs/cargo@v1
77 use-cross: ${{ matrix.cross }}
79 args: --release --locked --target ${{ matrix.target }}
81 - name: Strip release binary (linux and macos)
82 if: matrix.build == 'x86_64-linux' || matrix.build == 'x86_64-macos'
83 run: strip "target/${{ matrix.target }}/release/hx"
85 - name: Strip release binary (arm)
86 if: matrix.build == 'aarch64-linux'
89 "$PWD/target:/target:Z" \
90 rustembedded/cross:${{ matrix.target }} \
91 aarch64-linux-gnu-strip \
92 /target/${{ matrix.target }}/release/hx
98 if [ "${{ matrix.os }}" = "windows-2019" ]; then
99 cp "target/${{ matrix.target }}/release/hx.exe" "dist/"
101 cp "target/${{ matrix.target }}/release/hx" "dist/"
105 - uses: actions/upload-artifact@v2.2.4
107 name: bins-${{ matrix.build }}
113 runs-on: ubuntu-latest
115 - name: Checkout sources
116 uses: actions/checkout@v2
120 - uses: actions/download-artifact@v2
123 # - run: ls -al ./dist
126 - name: Calculate tag name
129 if [[ $GITHUB_REF == refs/tags/v* ]]; then
130 name=${GITHUB_REF:10}
132 echo ::set-output name=val::$name
133 echo TAG=$name >> $GITHUB_ENV
136 - name: Build archive
145 for dir in bins-* ; do
146 platform=${dir#"bins-"}
147 if [[ $platform =~ "windows" ]]; then
150 pkgname=helix-$TAG-$platform
152 cp LICENSE README.md tmp/$pkgname
153 mv bins-$platform/runtime tmp/$pkgname/
154 mv bins-$platform/hx$exe tmp/$pkgname
155 chmod +x tmp/$pkgname/hx$exe
157 if [ "$exe" = "" ]; then
158 tar cJf dist/$pkgname.tar.xz -C tmp $pkgname
160 (cd tmp && 7z a -r ../dist/$pkgname.zip $pkgname)
164 - name: Upload binaries to release
165 uses: svenstaro/upload-release-action@v2
167 repo_token: ${{ secrets.GITHUB_TOKEN }}
170 tag: ${{ steps.tagname.outputs.val }}
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list