name: CI on: push: branches: [main] jobs: build-and-publish: runs-on: node-latest defaults: run: shell: sh steps: - name: Checkout repository env: ALPINE_MIRROR: ${{ secrets.ALPINE_MIRROR }} run: | set -e ALPINE_VERSION=$(cat /etc/alpine-release | cut -d'.' -f1-2) && \ echo "${ALPINE_MIRROR}v${ALPINE_VERSION}/main" > /etc/apk/repositories && \ echo "${ALPINE_MIRROR}v${ALPINE_VERSION}/community" >> /etc/apk/repositories apk update apk add --no-cache git GIT_URL="https://${GITHUB_SERVER_URL#https://}/${GITHUB_REPOSITORY}.git" git clone --depth 1 --branch "$GITHUB_REF_NAME" "$GIT_URL" . if [ "$(git rev-parse HEAD)" != "$GITHUB_SHA" ]; then echo "Fetching exact commit $GITHUB_SHA..." git fetch origin "$GITHUB_SHA" --depth 1 git checkout "$GITHUB_SHA" fi - name: Install dependencies run: npm ci --prefer-offline - name: Lint run: npm run lint - name: Check formatting run: npm run format:check # - name: Run tests # run: npm test - name: Build npm package run: | npm run build - name: Publish to Gitea npm registry if: success() env: GITEA_TOKEN: ${{ secrets.G_TOKEN }} run: | set -e HOST="${GITHUB_SERVER_URL#https://}" OWNER="${GITHUB_REPOSITORY_OWNER}" REGISTRY="https://${HOST}/api/packages/${OWNER}/npm" npm config set "//${HOST}/api/packages/${OWNER}/npm/:_authToken" "${GITEA_TOKEN}" npm config set registry "${REGISTRY}" npm publish \ --registry "https://${GITHUB_SERVER_URL#https://}/api/packages/${OWNER}/npm" \ --ignore-scripts