diff options
Diffstat (limited to '.github/workflows/ci.yml')
| -rw-r--r-- | .github/workflows/ci.yml | 65 |
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 |
