name: Build and publish Node.js package on: create: tags: - 'v*' jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: # Use windows-2016 as windows-2019 has LNK1181 error when building Neon module. os: [ubuntu-latest, windows-2016, macos-latest] node: [8, 9, 10, 11, 12, 13] include: - os: ubuntu-latest ARCH: linux-x86_64 - os: windows-2016 ARCH: windows-x86_64 - os: macos-latest ARCH: macos-x86_64 steps: - uses: actions/checkout@v1 - name: Get version id: version shell: bash run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v} - name: Set up Node.js uses: actions/setup-node@master with: node-version: ${{ matrix.node }}.x - name: Set up Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal default: true - name: Build native module working-directory: ./nodejs run: | npm install node node_modules/neon-cli/bin/cli.js build --release - uses: chrislennon/action-aws-cli@v1.1 - name: Upload to S3 env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: us-west-2 run: aws s3 cp ./nodejs/native/index.node s3://${{ secrets.AWS_S3_BUCKET }}/hyperbuild/bin/nodejs/${{ steps.version.outputs.VERSION }}/${{ matrix.ARCH }}-node${{ matrix.node }}.node package: runs-on: ubuntu-latest needs: build steps: - uses: actions/checkout@v1 - name: Get version id: version shell: bash run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v} - name: Set up Node.js uses: actions/setup-node@master with: node-version: 13.x - uses: chrislennon/action-aws-cli@v1.1 - name: Pack and publish package working-directory: ./nodejs env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: us-west-2 run: | cat << 'EOF' > .npmrc package-lock=false //registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }} EOF npm install rm -rf dist node node_modules/typescript/bin/tsc aws s3 mv s3://${{ secrets.AWS_S3_BUCKET }}/hyperbuild/bin/nodejs/${{ steps.version.outputs.VERSION }}/ ./dist/. --recursive cp ../README.md . npm publish