diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a4aed89..0000000 --- a/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -node_js: -- 12.20 -before_script: -- node make.js build -before_deploy: -- node make.js after_build -deploy: - provider: npm - email: wparad@gmail.com - api_key: - secure: ZTwkKtd7ZkyccsIjzjQ9b6y37r5dlkuROx30fhhMmPurhg6E32IrCsDm5b87HxV9dYJCm0MAMB8RtDW/YQ/Bo9h48pAvGV5E1rG48h57R6rEIPGERZ0dakmlFOjt+dlaEb0C4Fv90uWT2Rg2SFS0Lob9pPsNlYvPMGoaHFEwulSCrKjEromo6adB2geAvNVwtp76Ls0IfDwinoQTMsf0/19lf0pWGPWPvfwScE0BZv5ZMVanUKBXBqV8Ipes2c0iZR2WoAOBG7u1y4tk2WSADCLCo9p2jOXCGG55JwpRfvaokjZveM4O2qfXr6BaiDiy8FaXCBpln1K6iLThniPDxE3EpcBr9aLrnPj78tImkgvRqPhNnfgfpizl6Gv6qxHJavhiPnXvi+em/NeLLF8pYPH/GRKYqdOIfp/Fyez4de80k+LhNyYiYCt18hvFOib5PYngXvcsrDM69/n4lLqvlx6yU1taAaPMWUYXHj8jT4hQTCN+z5YdVTRgvuDUdswyfqvuHfJ2CCWE9nm3i46BAkCQXDDB199qqjSiKHu2jIr4tz77iXE3StoL1ePkQofTPcawe7pSlNqj2x8qydnlaGqg3ZuZJMm9zsGzgTQRjXxrcCmSX0QShFqHTJR1VFFB89PUEthgsiKPdp94pIH+a0EIw1NQNm9A4pQY47IepN4= - skip_cleanup: true - on: - all_branches: true - condition: "$TRAVIS_BRANCH != master" -branches: - only: - - master - - "/^release.*/" -env: - global: - - secure: Uk/Id3Lxb4YVmtLx/Su+upgnp9Cc1adhI6LIT0MC12jd0XmSb5mnFKI6zzXWNiyZr6/6PFbaiYcGwUPBFRknhhr14O2kt+j9U5KXZvbdiKbl01+6gXBKiJ2SEVnxeIuibmrxEiqSAQlWUpyph/gdOKIvh8bxGzm15jg5n1A58sgJ3cEZc+aVVeZCPD11RespnWRGf2oyVQEyvt+k2KMFWB9UKuGIf4oLfz9IkD/OV5CIpJFkuPnYY+Lnt1zaTTuB1mZ2aY9bqzj6B/lQNsB4jcQxKDtABjLZhZ42yodrHl4HSiiY5odM4cVw4vIPjMgOsDyXbmiKQ5zr1IZVRIqdCRCH496Fcp5LW7db/idPcndsrENNd7d9FD93LTv5LDZfLRbXBU1wjJTnKmPOPFO1xSu5uYs+ekpeilG8gTdgEw+2t1Ew2ZPBRXWskYPzsp0d8dd3dDi438F38D+x1yFQraFYLb2HsT/I6uqZsJQ+OGtvotxF7oLO13JVywaBrkmDFVCggFseSH2G5OJ3FDtsY1FSVfa76x9OKGC6zP3fwOEa5HKVwK9TBTGGLOsNvxp01p6a2Iq4Kc/Gm/1F+CYpDVafObDmgQNGhPdLfBZNIR2GnnVijiazpYbD0Tsa2AP/P/U+ZPOGjZOz/PwHY3xutcX16Z0UpK5vVnGbJ8B3hJo= diff --git a/make.js b/make.js index 1dc2dc1..8ab6e4a 100644 --- a/make.js +++ b/make.js @@ -4,13 +4,31 @@ let commander = require('commander'); let fs = require('fs-extra'); -let travis = require('travis-build-tools')(process.env.GIT_TAG_PUSHER); -let version = travis.GetVersion(); +// const githubActionsRunner = require('ci-build-tools')(process.env.GITHUB_TOKEN); +function getVersion() { + let release_version = '0.0'; + const pull_request = ''; + const branch = process.env.GITHUB_REF; + const build_number = process.env.GITHUB_RUN_NUMBER; + + //Builds of pull requests + if (pull_request && !pull_request.match(/false/i)) { + release_version = `0.${pull_request}`; + } else if (!branch || !branch.match(/^(refs\/heads\/)?release[/-]/i)) { + //Builds of branches that aren't master or release + release_version = '0.0'; + } else { + //Builds of release branches (or locally or on server) + release_version = branch.match(/^(?:refs\/heads\/)?release[/-](\d+(?:\.\d+){0,3})$/i)[1]; + } + return `${release_version}.${(build_number || '0')}.0.0.0.0`.split('.').slice(0, 3).join('.'); +} +const version = getVersion(); commander.version(version); /** - * Build - */ + * Build + */ commander .command('build') .description('Setup require build files for npm package.') @@ -24,8 +42,8 @@ commander }); /** - * After Build - */ + * After Build + */ commander .command('after_build') .description('Publishes git tags and reports failures.') @@ -33,8 +51,7 @@ commander let package_metadata = require('./package.json'); console.log('After build package %s (%s)', package_metadata.name, version); console.log(''); - travis.PublishGitTag(); - travis.MergeDownstream('release/', 'master'); + // githubActionsRunner.MergeDownstream('release/', 'main'); }); commander.on('*', () => { diff --git a/package.json b/package.json index d02e2ea..bc3e332 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@typescript-eslint/parser": "^3.1.0", "chai": "^4.2.0", "check-dts": "^0.4.4", + "ci-build-tools": "^1.0.13", "commander": "^4.0.1", "eslint": "^7.2.0", "eslint-config-cimpress-atsquad": "^1.0.67", diff --git a/workflows/build.yml b/workflows/build.yml new file mode 100644 index 0000000..9843e9e --- /dev/null +++ b/workflows/build.yml @@ -0,0 +1,46 @@ +on: + push: + branches: + - main + - master + - 'release/**' + pull_request: + branches: + - main + - master + - 'release/**' + +jobs: + build: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + - name: Set up Node.js + uses: actions/setup-node@v1 + with: + node-version: 12.21.0 + registry-url: 'https://registry.npmjs.org' + + - name: Install packages + run: npm install + - name: Run build + run: node make.js build + - name: Test + run: yarn lint && yarn test + - name: Deploy to NPM + if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' && github.event_name == 'push' + run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} + + - name: After build + if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' && github.event_name == 'push' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: node make.js after_build + - name: Create Github Release and Tag + if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' && github.event_name == 'push' + run: | + git tag ${GITHUB_REF/refs\/heads\/release\//}.$GITHUB_RUN_NUMBER + git push origin ${GITHUB_REF/refs\/heads\/release\//}.$GITHUB_RUN_NUMBER diff --git a/yarn.lock b/yarn.lock index 406a599..9bada03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -427,6 +427,13 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" +ci-build-tools@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/ci-build-tools/-/ci-build-tools-1.0.13.tgz#5c63e99d088a3052e06c2a07ebede586bd14cffc" + integrity sha1-XGPpnQiKMFLgbCoH6+3lhr0Uz/w= + dependencies: + semver "^5.0.3" + ci-job-number@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0"