name: CI on: "workflow_dispatch" jobs: # Test: # runs-on: ubuntu-latest # steps: # - name: Checkout Commit # uses: actions/checkout@v2 # # - name: Setup Node.js environment # uses: actions/setup-node@v2.1.1 # # - name: Install Dependencies # run: npm install # # - name: Run Tests # run: npm run test Build: runs-on: ubuntu-latest outputs: package-name: ${{ steps.packageInfo.outputs.package-name }} package-version: ${{ steps.packageInfo.outputs.package-version }} commit-msg: ${{ steps.packageInfo.outputs.package-name }} # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: Checkout Commit uses: actions/checkout@v2 - name: Parsing Package Info id: packageInfo run: | echo "::set-output name=package-name::$(jq -r .name package.json)" echo "::set-output name=package-version::$(jq -r .version package.json)" echo "::set-output name=commit-msg::$(git log -1 --pretty=%B)" - name: Setup Node.js environment uses: actions/setup-node@v2.1.1 - name: Install Dependencies run: npm install - name: Build run: npm run build:all - name: Upload a Build Artifact uses: actions/upload-artifact@v2.1.4 with: name: baileysBuilt path: | docs/**/* lib/**/* package.json Publish-Docs: if: github.ref != 'refs/heads/master' runs-on: ubuntu-latest needs: Build steps: - name: Download Build Artifact uses: actions/download-artifact@v2.0.5 with: # Artifact name name: baileysBuilt # Destination path path: ${{ github.workspace }} - name: Publish to Pages uses: crazy-max/ghaction-github-pages@v2 with: target_branch: gh-pages build_dir: docs env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} Publish-Package: runs-on: ubuntu-latest if: github.ref == 'refs/heads/master' needs: Build steps: - name: Download Build Artifact uses: actions/download-artifact@v2.0.5 with: name: baileysBuilt path: ${{ github.workspace }} - name: Setup Node.js environment uses: actions/setup-node@v2.1.1 - name: Debug Release Creation run: echo "${{ toJson(needs) }}" - name: Create Release id: releaseCreate continue-on-error: true uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: # The name of the tag. This should come from the webhook payload, `github.GITHUB_REF` when a user pushes a new tag tag_name: v${{ needs.Build.outputs.package-version }} # The name of the release. For example, `Release v1.0.1` release_name: v${{needs.Build.outputs.package-version}} # Text describing the contents of the tag. body: ${{needs.Build.outputs.commit-msg}} # `true` to create a draft (unpublished) release, `false` to create a published one. Default: `false` draft: false # `true` to identify the release as a prerelease. `false` to identify the release as a full release. Default: `false` prerelease: false - name: Pack run: npm pack - name: Rename Pack run: mv *.tgz npmPackage.tgz - name: Upload Package to Release continue-on-error: true uses: actions/upload-release-asset@v1.0.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: # The URL for uploading assets to the release upload_url: ${{steps.releaseCreate.outputs.upload_url}} # The path to the asset you want to upload asset_path: npmPackage.tgz asset_name: npmPackage.tgz # The content-type of the asset you want to upload. See the supported Media Types here: https://www.iana.org/assignments/media-types/media-types.xhtml for more information asset_content_type: application/x-compressed-tar - name: NPM Publish uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }}