mirror of
https://github.com/prefix-dev/setup-pixi
synced 2026-05-21 20:03:50 +03:00
127 lines
4.2 KiB
YAML
127 lines
4.2 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
merge_group:
|
|
schedule:
|
|
# every 3 months
|
|
- cron: 0 0 1 */3 *
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.4.0
|
|
with:
|
|
version: 9
|
|
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
with:
|
|
node-version: 20
|
|
cache: pnpm
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Rebuild the dist/ directory
|
|
run: pnpm build
|
|
|
|
- name: Lint
|
|
run: pnpm lint
|
|
|
|
reference-latest-version-in-readme:
|
|
name: Reference latest version in README
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Assert latest setup-pixi version is mentioned in README
|
|
run: |
|
|
set -euo pipefail
|
|
latest_version="$(jq -r '.version' package.json)"
|
|
count_expected=19
|
|
count_actual="$(grep -c "setup-pixi@v$latest_version" README.md || true)"
|
|
if [ "$count_actual" -ne "$count_expected" ]; then
|
|
echo "::error file=README.md::Expected $count_expected mentions of \`setup-pixi@v$latest_version\` in README.md, but found $count_actual."
|
|
exit 1
|
|
fi
|
|
|
|
reference-latest-pixi-version-in-readme:
|
|
name: Reference latest Pixi version in README
|
|
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Assert latest pixi version is mentioned in README
|
|
run: |
|
|
set -euo pipefail
|
|
latest_version="$(gh repo view --json latestRelease prefix-dev/pixi | jq -r '.latestRelease.tagName')"
|
|
count_expected=1
|
|
count_actual="$(grep -c "pixi-version: $latest_version" README.md || true)"
|
|
if [ "$count_actual" -ne "$count_expected" ]; then
|
|
echo "::error file=README.md::Expected $count_expected mentions of \`pixi-version: $latest_version\` in README.md, but found $count_actual."
|
|
sed -i "s/pixi-version: .*/pixi-version: $latest_version/" README.md
|
|
exit 1
|
|
fi
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Create pull request
|
|
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
|
if: failure() && github.ref_name == 'main'
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
commit-message: Reference latest Pixi version in README
|
|
title: Reference latest Pixi version in README
|
|
labels: ignore for release
|
|
|
|
check-dist:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.4.0
|
|
with:
|
|
version: 9
|
|
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
with:
|
|
node-version: 20
|
|
cache: pnpm
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Rebuild the dist/ directory
|
|
run: pnpm build
|
|
|
|
- name: Compare the expected and actual dist/ directories
|
|
run: |
|
|
if [ "$(git diff --ignore-space-at-eol dist/* | wc -l)" -gt "0" ]; then
|
|
echo "Detected uncommitted changes after build. See status below:"
|
|
git diff
|
|
exit 1
|
|
fi
|
|
id: diff
|
|
|
|
# If index.js or post.js are different than expected, upload the expected version as an artifact
|
|
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
|
with:
|
|
name: dist
|
|
path: dist/
|