aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/ci.yml54
1 files changed, 31 insertions, 23 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 57af41e..90e7d57 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,20 +38,9 @@ jobs:
name: docs-test-result-${{ matrix.os }}.md
path: .temp/DOCS-TEST-RESULT.md
- Move-Unreleased-Tag:
- if: github.ref == 'refs/heads/main'
- needs: [Check]
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v7
- with:
- fetch-depth: 0
- - run: |
- git tag -f unreleased
- git push origin unreleased --force
-
- Package-Mling:
- needs: [Move-Unreleased-Tag]
+ # 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:
@@ -61,7 +50,7 @@ jobs:
- uses: actions/checkout@v7
- uses: actions-rust-lang/setup-rust-toolchain@v1
- - name: Compute artifact metadata
+ - name: Compute package metadata
id: metadata
shell: bash
run: |
@@ -71,8 +60,6 @@ jobs:
macOS) os="mac" ;;
esac
echo "os=$os" >> "$GITHUB_OUTPUT"
- echo "short_sha=${GITHUB_SHA:0:8}" >> "$GITHUB_OUTPUT"
- echo "date=$(date +%y-%m-%d)" >> "$GITHUB_OUTPUT"
- name: Install mling
shell: bash
@@ -84,21 +71,36 @@ jobs:
fi
- name: Package mling
- id: package
shell: bash
run: |
mkdir -p dist
- name="mling-${{ steps.metadata.outputs.os }}-${{ steps.metadata.outputs.short_sha }}-${{ steps.metadata.outputs.date }}.tar.gz"
+ name="mling-${{ steps.metadata.outputs.os }}.tar.gz"
tar -czf "dist/$name" -C .temp/mling .
- echo "artifact_name=${name%.tar.gz}" >> "$GITHUB_OUTPUT"
+ 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 artifact
+ - name: Upload mling package
uses: actions/upload-artifact@v4
with:
- name: ${{ steps.package.outputs.artifact_name }}
- path: dist/mling-*.tar.gz
+ name: mling-${{ steps.metadata.outputs.os }}-pkg
+ path: dist/
if-no-files-found: error
+ Move-Unreleased-Tag:
+ if: github.ref == 'refs/heads/main'
+ needs: [Check, Build]
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v7
+ with:
+ fetch-depth: 0
+ - run: |
+ git tag -f unreleased
+ git push origin unreleased --force
+
Deploy-Github-Pages:
needs: [Move-Unreleased-Tag]
permissions:
@@ -129,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