diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..4a61cfb9d --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,69 @@ +name: Bitcoin order App +on: + push: + branches: + - githubcicd +jobs: + ci: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x] + + steps: + - uses: actions/checkout@v2 + - uses: browser-actions/setup-chrome@latest + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Cache node modules + id: cache-nodemodules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # caching node_modules + path: node_modules + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + - name: Install Dependencies + if: steps.cache-nodemodules.outputs.cache-hit != 'true' + run: | + npm ci --force + - name: Build + run: | + npm run build --force + - name: Lint + run: | + npm run lint + - name: Update types to latest + run: | + npm install --save-dev @types/node@latest --force + - name: Test + run: | + npm run test + - name: Conventional Changelog Action + id: changelog + uses: TriPSs/conventional-changelog-action@v3 + with: + github-token: ${{ secrets.WORKSHOP6_GITHUB_TOKEN }} + output-file: "false" + + - name: Create Release + uses: actions/create-release@v1 + if: ${{ steps.changelog.outputs.skipped == 'false' }} + env: + GITHUB_TOKEN: ${{ secrets.WORKSHOP6_GITHUB_TOKEN }} + with: + tag_name: ${{ steps.changelog.outputs.tag }} + release_name: ${{ steps.changelog.outputs.tag }} + body: ${{ steps.changelog.outputs.clean_changelog }} + - name: Deploy + run: | + npm run deploy