diff --git a/.gitea/workflows/publish.yml b/.gitea/workflows/publish.yml new file mode 100644 index 0000000..0224214 --- /dev/null +++ b/.gitea/workflows/publish.yml @@ -0,0 +1,39 @@ +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"