name: Build & Publish on: push: branches: [main] tags: ['v*'] jobs: publish: runs-on: ubuntu-latest container: image: node:22-bookworm-slim steps: - uses: actions/checkout@v4 - name: Install dependencies run: npm ci - name: Run tests run: npx vitest run --exclude 'e2e/**' - name: Build library run: npm run build:lib - name: Publish package shell: bash run: | case "$GITHUB_REF" in refs/tags/v*) VERSION="${GITHUB_REF_NAME#v}" npm version "$VERSION" --no-git-tag-version --allow-same-version TAG="latest" ;; *) SHORT_SHA=$(echo "$GITHUB_SHA" | head -c 7) DATE=$(date +%Y%m%d) npm version "0.0.0-snapshot.${DATE}.${SHORT_SHA}" --no-git-tag-version TAG="dev" ;; esac echo '@cameleer:registry=https://gitea.siegeln.net/api/packages/cameleer/npm/' > .npmrc echo '//gitea.siegeln.net/api/packages/cameleer/npm/:_authToken=${{ secrets.REGISTRY_TOKEN }}' >> .npmrc npm publish --tag "$TAG"