name: Build & Publish on: push: branches: [main] tags: ['v*'] jobs: publish: runs-on: linux-arm64 container: image: node:22-bookworm-slim steps: - uses: actions/checkout@v4 - name: Install dependencies run: npm ci - name: Run tests run: npx vitest run - name: Build library run: npm run build:lib - name: Publish package run: | if [[ "$GITHUB_REF" == refs/tags/v* ]]; then VERSION="${GITHUB_REF_NAME#v}" npm version "$VERSION" --no-git-tag-version TAG="latest" else 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" fi 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"