diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..5720577 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,34 @@ +name: build +on: + push: + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [12.x, 14.x, 16.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: yarn + - run: yarn install + - name: build + run: yarn build + - name: lint + if: ${{ always() }} + run: yarn lint + - name: test + if: ${{ always() }} + run: yarn test + - name: Slack notification + uses: rtCamp/action-slack-notify@v2 + if: ${{ failure() }} + env: + SLACK_USERNAME: GitHub Actions - ${{ github.repository }} + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_COLOR: ${{ job.status }} + SLACK_FOOTER: 'Generated by a failed Github action in ${{ github.repository }} for job: ${{ github.job }}' diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..7b7cd3d --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,32 @@ +name: coverage +on: + push: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js lts/* + uses: actions/setup-node@v2 + with: + node-version: lts/* + cache: yarn + - run: yarn install + - name: test + id: test + if: ${{ always() }} + run: yarn test + - name: Publish code coverage + if: ${{ steps.test.outcome == 'success' }} + uses: paambaati/codeclimate-action@v3.0.0 + env: + CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}} # Needs to be set. + - name: Slack notification + uses: rtCamp/action-slack-notify@v2 + if: ${{ failure() }} + env: + SLACK_USERNAME: GitHub Actions - ${{ github.repository }} + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_COLOR: ${{ job.status }} + SLACK_FOOTER: 'Generated by a failed Github action in ${{ github.repository }} for job: ${{ github.job }}' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..90b615f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,37 @@ +name: release +on: + push: + branches: + - master + +jobs: + release: + env: + CI: true + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + persist-credentials: false + - name: Use Node.js lts/* + uses: actions/setup-node@v2 + with: + node-version: lts/* + cache: yarn + - run: yarn install + - name: build + run: yarn build + - name: release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: yarn semantic-release + - name: Slack notification + uses: rtCamp/action-slack-notify@v2 + if: ${{ failure() }} + env: + SLACK_USERNAME: GitHub Actions - ${{ github.repository }} + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_COLOR: ${{ job.status }} + SLACK_FOOTER: 'Generated by a failed Github action in ${{ github.repository }} for job: ${{ github.job }}' diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 6b2a4ee..0000000 --- a/.travis.yml +++ /dev/null @@ -1,58 +0,0 @@ -language: node_js - -cache: yarn - -node_js: - - 10 - - 12 - -before_install: - - npm i -g yarn - -script: - - yarn lint - - yarn build - - yarn test - -# Environment variables marked with `secure` should be securely encrypted as described at: -# https://docs.travis-ci.com/user/environment-variables/#encrypting-environment-variables - -notifications: - slack: - rooms: - - secure: dEEtfAC+48fdC9f6PCk/FOoTiWx1TC2Rk/+yfzx5/NHwZ/eAL5d5/RnM7xLeTAf8vzMQsWCN1YKymTMhamd6SEwVyez+ffB0QXWvFZNq52PxaHi6a00eV2Edg3OB0kj3H25aH1CfDKM8DK0VmXf7ABkS02XzDkar0OPB0SPKL3p2kUY6yIOrfROfOpSwCnqsQ5iDK+27BTOm6zgtmE2zyOg7bVZgoXXCfx0/pfp2hRS7hnfXe86CZka9pna2C3Uz2UZpoTVsGidWtkIjFk9xW6EFYBi7qt+mHpNmb8U4W4mIyjS/cYMhHyTsTuB1C3wNSl+qIC69gTIJnLKCwna/AXC781KhdYrGpMA5PHXnDqNyLW6Rd1q7srgtcA93QQRKPV4aQUmZErDzB9VBcHTSe3MKQOCOSR3Ze0jmVoy2X4ciyted1Uj0N20FU8jUQA8fqjOrPEkKvHCEHOdQN6QXL6CL1SRR/cDtWDHCluvsttQEAhaoVsC7oRIoB6a7TKDHff1AZg11Xy0V69Me6OU8v4Xq1vIGFTnzTj7cuFHer1KlK8V7FwrE7NMU1W0Mcia5ZKyp4tKZtGT9iQxiH1Rz8c4BM3oDgCerJmrrNvc10U1uCWSms8WLa8EcS97933gcygPcorm9066UBCkO6HzMCFKem8opFnot7NF4nyOnJko= - on_success: change - on_failure: always - -env: - global: - - secure: Iry1GBrPTnCR6hBOJShrgejohBucbhUNehdU3BqQurHJZfQxcrupGxxM2Wd14BYkN2iH+7+GcLk7XOzM/iLnHbfMFxd+0sYZECPtKIVljBJ4Ey+H28n8z8jZf7aoijantxOiASGs1+js0r0ciYO0VPmCMHLmPzlBqphcwFjNoo+hypAQdkxowdo2KQ4drxMP3Edc1Djn+zimCtj4+7j1qQZ06sxel9L9U9WxXFRv4bXh+pi5wqkelfctI9b0kjeNwQXcaH551DfT1KnfzryfvbBDoIDnKU5yBPlRd4A/3XTXMHPipAZ1v8XqZvM9W4LUA4aDidNPeXjxvY80IN4Wgv3ItFn/Qsx9kcMh4W87J37vTT0KrHsilqZ4yhgM0utlKAX1tfY68MvNtMRTW5CQlDj9s2CJAjidtLPZvhZUVZCgbal7METSnzExaWHr45xSnWw8NT36V4GvDUg7aOgFTyETNpP+Ew4Y6GYDy2rt9dsWlbiPbdnG5E3BOAMi+Vz3bnGDC8KvcQFyAGrLc0TG2TkdPjIhjchqDWlPXh8p0RRakE/G5Mm/WnbhT9qX3twzdr2JIIX3ra61j1iDxKSajO1sTG86g8z0ijxrtG3ycumaNEAzsIxLVKYk9s8kaFd6wAIJE6fUV1Dlj87HN2Vc7dETkWldk8eqTtp3NiMMjS8= - - secure: LkB3bpghRZ6GzdmjCUIAKMFYGWpLWjOEDbpEc3TGgfz83NBcQHlRk6wl7u7PckTgDlv4XhOuARzcFmBRgqHmIepHTEN3JeTP8U+xbK6ELPaLcGtXN3RMxZLBpTZt1oXQTFmbvNrm8OV7/YbYEDuhKDKD4or0/IGDAzZYuF371myTKgrKS0hBbjgGITcbE0L1LibO1G3g8/n+8XdwHpilGAJKYiJ+mSbq+1qNRU36e6ZpcH1geYdWOdPA3mumOzpNE0rZj6oNs8NxxNaGh718jwU9mx4pGv/XN9FuVQ3vNw7WI5Z+77si4NtFYWU+dibvjsEcB6oay5mLdFaR0WvJHMux0Y1lGRS5etPucoU+YzOQlxB4NgRy7TLRKWbgm8z8AA/mT/Gk1qgMKCX0+/w/Wg9jvADWXirl+dyZfz9HXmnUFkMG1FjpUYXA2azQF+HfnNV/jfEooPr+ylxCTu17nO0I6+hw04hxtlO3wt6rmrCwTkiaCBvvlmMfBDc5FAOuF115nU87PfJoj6t+1pPnULEoOLe/1vF8zrs3XYGKvYmh9PgYC7K2Kj1dXVPhVfgFH0yAwXHfMQ85osGGRer3DsXQ5onbp0kSZfAYmm4igHKC6q0X2GViHaMyX5basQQA8xLqB6jrK9DQ/Yqs2wwWK1eqpkWEtE+Lb2iKKKIR5kg= - - secure: abYRJGJ4aDMhyWLDyO8gTWXxdOeNXhOzurPP6PVHTiI0X9WIUpd8lUEJDPkhMrSV5kW5WS0jmfo1mgQRoNUPzxsT+Z6k8/m/ju+I90cImk8aSkZDiyBZZcRLXvUNYzBR6xoQT3AChLEyI9sxAQ8uLuN7AhCoGYdB8PRVhNlYXm9mYKN7jiBhyncuVSEbTUd85Oc4/FU/eX0n4zWz1HOdQGIAJFo74R1b56FADS7dMwFPrNTtJY9yrg0HvaQ6H19XIb3el5T73HsOWJJvfRfDX23dm4m8gdY8QQOrCBZytmg3fQ8CSYqWKsVzCjSb3q0iumz7l1lubKbABr6du/zuKc/HaM55GDoK8OveflBjUUL2babSzKn5viQh8pCyZqWpPGsgKcLHNlJc8X/sgsDM+J/XHigareUhCfqPQ6XnbA/d/lW6wSTsbH+ovAwWJfkDsPzTj0dQPHZhkA3VRllCLYPkzq/z5ILt0MmpN4NfAIliZEBKTqHNEuRVxF2a2Bg9kt7ZzCZi0WZGtt4lab2vOV1Ob+Gjih9pcRnyyZKkXTeh9izfnWE8owTXyVBvvMEcJAap4ntVPXE69tSfRzlPQeovdgIAHijjdmwVkR7fZpSON2bRu/oXY3DcaGIWJqlvAjqekni8PckxEL/EBODurGm1bRxzohBC7h85J4aG+pQ= - - export GIT_AUTHOR_NAME="esg-bot" - - export GIT_AUTHOR_EMAIL="tech@endemolshine.com" - - export GIT_COMMITTER_NAME="esg-bot" - - export GIT_COMMITTER_EMAIL="tech@endemolshine.com" - -jobs: - include: - - stage: coverage - if: type != pull_request - before_script: - - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - - chmod +x ./cc-test-reporter - - ./cc-test-reporter before-build - after_script: - - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT - after_success: - - yarn global add codecov - - codecov - - stage: release - if: branch = master AND type != pull_request - after_success: - - yarn semantic-release - - git clone https://${GH_TOKEN}@github.com/$TRAVIS_REPO_SLUG.git $TRAVIS_REPO_SLUG - - cd $TRAVIS_REPO_SLUG - - git fetch --all - - git merge origin/master - - git push