diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index abd168f..295d858 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,16 @@ on: jobs: build: - runs-on: ubuntu-latest + strategy: + matrix: + os: + - ubuntu-latest + - windows-latest + - macos-latest + include: + - os: windows-latest + extension: .exe + runs-on: ${{ matrix.os }} steps: - name: Checkout sources uses: actions/checkout@v4 @@ -14,77 +23,38 @@ jobs: - name: Build release binary run: cargo build --release --locked - - uses: actions/upload-artifact@v4 + - name: Upload Artifact + uses: actions/upload-artifact@v4 with: - name: linux - path: target/release/pbls - - # publish: - # name: Publish - # needs: [build] - # runs-on: ubuntu-latest - # steps: - # - name: Checkout sources - # uses: actions/checkout@v4 - - # - uses: actions/download-artifact@v4 - - # - name: Build archive - # shell: bash - # run: | - # set -ex - - # source="$(pwd)" - # mkdir -p runtime/grammars/sources - # tar xJf grammars/grammars.tar.xz -C runtime/grammars/sources - # rm -rf grammars + name: ${{ matrix.os }} + path: target/release/pbls${{ matrix.extension }} + if-no-files-found: error - # cd "$(mktemp -d)" - # mv $source/bins-* . - # mkdir dist + publish: + needs: [build] + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v4 - # for dir in bins-* ; do - # platform=${dir#"bins-"} - # if [[ $platform =~ "windows" ]]; then - # exe=".exe" - # fi - # pkgname=helix-$GITHUB_REF_NAME-$platform - # mkdir -p $pkgname - # cp $source/LICENSE $source/README.md $pkgname - # mkdir $pkgname/contrib - # cp -r $source/contrib/completion $pkgname/contrib - # mv bins-$platform/runtime $pkgname/ - # mv bins-$platform/hx$exe $pkgname - # chmod +x $pkgname/hx$exe + - name: Download Artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts - # if [[ "$platform" = "x86_64-linux" ]]; then - # mv bins-$platform/helix-*.AppImage* dist/ - # fi + - name: Create Release + env: + GH_TOKEN: ${{ github.token }} + run: | + mkdir artifacts/archives - # if [ "$exe" = "" ]; then - # tar cJf dist/$pkgname.tar.xz $pkgname - # else - # 7z a -r dist/$pkgname.zip $pkgname - # fi - # done + cd artifacts/ubuntu-latest + tar cJvf "../archives/pbls-$GITHUB_REF_NAME-linux.tar.xz" pbls - # tar cJf dist/helix-$GITHUB_REF_NAME-source.tar.xz -C $source . - # mv dist $source/ + cd ../macos-latest + tar cJvf "../archives/pbls-$GITHUB_REF_NAME-macos.tar.xz" pbls - # - name: Upload binaries to release - # uses: svenstaro/upload-release-action@v2 - # if: env.preview == 'false' - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # file: dist/* - # file_glob: true - # tag: ${{ github.ref_name }} - # overwrite: true - - # - name: Upload binaries as artifact - # uses: actions/upload-artifact@v4 - # if: env.preview == 'true' - # with: - # name: release - # path: dist/* + cd ../windows-latest + zip "../archives/pbls-$GITHUB_REF_NAME-windows.zip" pbls.exe + gh release create "$GITHUB_REF_NAME" --notes-from-tag artifacts/archives/* diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..65db3e3 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "stable" +components = ["rustfmt", "rust-src", "clippy"] +