diff --git a/.github/workflows/lint-test.yml b/.github/workflows/lint-test.yml new file mode 100644 index 0000000..68e198b --- /dev/null +++ b/.github/workflows/lint-test.yml @@ -0,0 +1,27 @@ +name: Lint and Test + +on: + pull_request: + branches: + - main + +jobs: + lint-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' + + - name: Install dependencies + run: npm install + + - name: Run ESLint tests + run: npm run test-lint + env: + CI: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..d8b9083 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,81 @@ +name: Release + +on: + push: + tags: + - 'v*.*.*' + +jobs: + create-release: + name: Build and Create Tagged release + runs-on: ubuntu-latest + + permissions: + contents: write + + steps: + + - name: Checkout source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: ${{ github.event.repository.default_branch }} + + - name: Install archive tools + run: sudo apt install zip + + - name: Install pnpm + uses: pnpm/action-setup@v4.0.0 + with: + version: 9 + + - name: Run pnpm install + run: pnpm install + + - name: Get variables + id: get_vars + run: | + echo '::set-output name=SHORT_SHA::$(git rev-parse --short HEAD)' + echo '::set-output name=DATE::$(date +'%D')' + + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'pnpm' + cache-dependency-path: 'pnpm-lock.yaml' + + - name: Bump package version + run: | + git config --global user.name "GitHub Actions" + git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" + pnpm version ${{ github.ref_name }} --git-tag-version false + + - name: Update repository + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git add . + git commit -am 'chore(package): updated version to ${{ github.ref_name }}' + git push + + - name: Create Release + uses: 'marvinpinto/action-automatic-releases@v1.2.1' + id: auto_release + with: + repo_token: '${{ secrets.GITHUB_TOKEN }}' + title: '${{ env.RELEASE_VERSION }}' + prerelease: false + + env: + CI: false + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Git deployment using git pull + uses: appleboy/ssh-action@v0.1.10 + with: + host: ${{ secrets.REMOTE_HOST }} + username: ${{ secrets.REMOTE_USER }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + port: 22 + script: ~/deploy_squad44bot.sh