test: test node packages #15
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Adapted from https://github.com/getsentry/sentry-cli | |
# See original license: https://github.com/getsentry/sentry-cli/blob/master/LICENSE | |
name: build | |
on: | |
push: | |
branches: | |
- "build-testing" | |
jobs: | |
linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- arch: i686 | |
target: i686-unknown-linux-musl | |
container: i686-musl | |
- arch: x86_64 | |
target: x86_64-unknown-linux-musl | |
container: x86_64-musl | |
- arch: armv7 | |
target: armv7-unknown-linux-musleabi | |
container: armv7-musleabi | |
- arch: aarch64 | |
target: aarch64-unknown-linux-musl | |
container: aarch64-musl | |
name: Linux ${{ matrix.arch }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Build in Docker | |
run: scripts/build-in-docker.sh | |
env: | |
TARGET: ${{ matrix.target }} | |
DOCKER_TAG: ${{ matrix.container }} | |
- run: ls target | |
- run: mv target/${{ matrix.target }}/release/supa-mdx-lint supa-mdx-lint-Linux-${{ matrix.arch }} | |
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 | |
with: | |
name: artifact-bin-linux-${{ matrix.arch }} | |
path: supa-mdx-lint-Linux-${{ matrix.arch }} | |
if-no-files-found: "error" | |
macos: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- arch: x86_64 | |
target: x86_64-apple-darwin | |
- arch: arm64 | |
target: aarch64-apple-darwin | |
name: macOS ${{ matrix.arch }} | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: ${{ matrix.target }} | |
- run: cargo build --target=${{ matrix.target }} --release --locked | |
- run: mv target/${{ matrix.target }}/release/supa-mdx-lint supa-mdx-lint-Darwin-${{ matrix.arch }} | |
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 | |
with: | |
name: artifact-bin-macos-${{ matrix.arch }} | |
path: supa-mdx-lint-Darwin-${{ matrix.arch }} | |
if-no-files-found: "error" | |
macos_universal: | |
needs: macos | |
name: macOS universal | |
runs-on: macos-latest | |
steps: | |
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 #v4.1.8 | |
with: | |
pattern: artifact-bin-macos-* | |
merge-multiple: true | |
- name: Link universal binary | |
run: lipo -create -output supa-mdx-lint-Darwin-universal supa-mdx-lint-Darwin-x86_64 supa-mdx-lint-Darwin-arm64 | |
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 | |
with: | |
name: artifact-bin-macos-universal | |
path: supa-mdx-lint-Darwin-universal | |
if-no-files-found: "error" | |
windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- arch: i686 | |
target: i686-pc-windows-msvc | |
- arch: x86_64 | |
target: x86_64-pc-windows-msvc | |
name: Windows ${{ matrix.arch }} | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: ${{ matrix.target }} | |
- run: cargo build --target=${{ matrix.target }} --release --locked | |
- run: mv target/${{ matrix.target }}/release/supa-mdx-lint.exe supa-mdx-lint-Windows-${{ matrix.arch }}.exe | |
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 | |
with: | |
name: artifact-bin-windows-${{ matrix.arch }} | |
path: supa-mdx-lint-Windows-${{ matrix.arch }}.exe | |
if-no-files-found: "error" | |
node: | |
name: NPM Package | |
runs-on: ubuntu-latest | |
needs: [linux, macos, macos_universal, windows] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 | |
with: | |
node-version: "20.10.0" | |
- name: Download compiled binaries | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
pattern: artifact-bin-* | |
merge-multiple: true | |
- name: Calculate and store checksums | |
shell: bash | |
run: | | |
sha256sum supa-mdx-lint-* | awk '{printf("%s=%s\n", $2, $1)}' > checksums.txt | |
cat checksums.txt | |
- run: npm pack | |
working-directory: packages/supa-mdx-lint | |
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 | |
with: | |
name: artifact-pkg-node | |
path: "packages/supa-mdx-lint/*.tgz" | |
if-no-files-found: "error" | |
npm-distributions: | |
name: "Build NPM distributions" | |
runs-on: ubuntu-latest | |
needs: [linux, macos, macos_universal, windows] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 | |
with: | |
node-version: "20.10.0" | |
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
pattern: artifact-bin-* | |
merge-multiple: true | |
path: binary-artifacts | |
- name: Move binaries into distribution packages | |
run: | | |
mv binary-artifacts/supa-mdx-lint-Darwin-universal npm-binary-distributions/darwin/bin/supa-mdx-lint | |
mv binary-artifacts/supa-mdx-lint-Linux-armv7 npm-binary-distributions/linux-arm/bin/supa-mdx-lint | |
mv binary-artifacts/supa-mdx-lint-Linux-aarch64 npm-binary-distributions/linux-arm64/bin/supa-mdx-lint | |
mv binary-artifacts/supa-mdx-lint-Linux-i686 npm-binary-distributions/linux-i686/bin/supa-mdx-lint | |
mv binary-artifacts/supa-mdx-lint-Linux-x86_64 npm-binary-distributions/linux-x64/bin/supa-mdx-lint | |
mv binary-artifacts/supa-mdx-lint-Windows-i686.exe npm-binary-distributions/win32-i686/bin/supa-mdx-lint.exe | |
mv binary-artifacts/supa-mdx-lint-Windows-x86_64.exe npm-binary-distributions/win32-x64/bin/supa-mdx-lint.exe | |
- name: Remove binary placeholders | |
run: rm -rf npm-binary-distributions/*/bin/.gitkeep | |
- name: Make binaries executable | |
run: chmod +x npm-binary-distributions/*/bin/supa-mdx-lint | |
- name: Package distribution packages | |
run: | | |
for dir in npm-binary-distributions/*; do | |
cd $dir | |
npm pack | |
cd - | |
done | |
- name: Upload packaged npm binary distributions | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 | |
with: | |
name: artifact-npm-binary-distributions | |
path: npm-binary-distributions/*/*.tgz | |
if-no-files-found: "error" | |
test-ubuntu: | |
runs-on: ubuntu-latest | |
needs: [node, npm-distributions] | |
# strategy: | |
# fail-fast: true | |
# matrix: | |
# node-version: [18, 20, 22] | |
steps: | |
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 | |
with: | |
# node-version: ${{ matrix.node-version }} | |
node-version: "20.10.0" | |
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: artifact-npm-binary-distributions | |
path: ./npm-binary-distributions | |
- uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: artifact-pkg-node | |
path: ./node-pkg | |
- name: Install and test packages | |
run: | | |
mkdir test | |
cd test | |
npm install ../npm-binary-distributions/linux-x64/*.tgz | |
npm install ../node-pkg/*.tgz | |
npx supa-mdx-lint --version |