name: Publish Hexabot (API Typescript) NPM Package on: push: tags: - 'v*' workflow_dispatch: # Allow manual trigger jobs: publish-package: runs-on: ubuntu-latest steps: - name: Check out repository code uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '18' # Ensure it matches your project requirements cache: 'npm' - name: Install dependencies working-directory: api run: npm ci - name: Build the package working-directory: api run: npm run build - name: Determine release type id: determine-release run: | if [[ "${{ github.ref }}" == refs/tags/v* ]]; then echo "tag=${{ github.ref_name }}" >> $GITHUB_ENV if [[ "${{ github.ref_name }}" =~ ^v[0-9]+\.[0-9]+\.0$ ]]; then echo "release=minor" >> $GITHUB_ENV elif [[ "${{ github.ref_name }}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "release=patch" >> $GITHUB_ENV else echo "release=none" >> $GITHUB_ENV fi else echo "release=none" >> $GITHUB_ENV fi - name: Login to npm if: env.release != 'none' uses: actions/setup-node@v3 with: registry-url: 'https://registry.npmjs.org/' node-version: '18' env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - name: Publish to npm working-directory: api if: env.release != 'none' run: npm publish