aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml65
1 files changed, 61 insertions, 4 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 020bf97..4ef1bbb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -26,7 +26,7 @@ jobs:
]
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v7
- uses: actions-rust-lang/setup-rust-toolchain@v1
- run: cargo ci --check-${{ matrix.item }}
@@ -38,12 +38,63 @@ jobs:
name: docs-test-result-${{ matrix.os }}.md
path: .temp/DOCS-TEST-RESULT.md
+ # Build the distributable packages in parallel with the checks, so that the
+ # `unreleased` tag and the Pages deployment always publish fresh artifacts.
+ Build:
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, windows-latest, macos-latest]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v7
+ - uses: actions-rust-lang/setup-rust-toolchain@v1
+
+ - name: Compute package metadata
+ id: metadata
+ shell: bash
+ run: |
+ case "$RUNNER_OS" in
+ Windows) os="win" ;;
+ Linux) os="linux" ;;
+ macOS) os="mac" ;;
+ esac
+ echo "os=$os" >> "$GITHUB_OUTPUT"
+
+ - name: Install mling
+ shell: bash
+ run: |
+ if [ "$RUNNER_OS" = "Windows" ]; then
+ powershell -ExecutionPolicy Bypass -File .run/src/bin/install-mling.ps1
+ else
+ bash .run/src/bin/install-mling.sh
+ fi
+
+ - name: Package mling
+ shell: bash
+ run: |
+ mkdir -p dist
+ name="mling-${{ steps.metadata.outputs.os }}.tar.gz"
+ tar -czf "dist/$name" -C .temp/mling .
+ if command -v sha256sum >/dev/null 2>&1; then
+ (cd dist && sha256sum "$name" > "$name.sha256")
+ else
+ (cd dist && shasum -a 256 "$name" > "$name.sha256")
+ fi
+
+ - name: Upload mling package
+ uses: actions/upload-artifact@v4
+ with:
+ name: mling-${{ steps.metadata.outputs.os }}-pkg
+ path: dist/mling-*
+ if-no-files-found: error
+
Move-Unreleased-Tag:
if: github.ref == 'refs/heads/main'
- needs: [Check]
+ needs: [Check, Build]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v7
with:
fetch-depth: 0
- run: |
@@ -62,7 +113,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v7
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install nightly toolchain
@@ -80,6 +131,12 @@ jobs:
- name: Delete .temp directory before deployment
run: rm -rf .temp
+ - name: Download mling packages
+ uses: actions/download-artifact@v4
+ with:
+ path: dist
+ merge-multiple: true
+
- name: Setup Pages
uses: actions/configure-pages@v5