diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000000..f2607495bb --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,46 @@ +name: Publish to NPM +on: + push: + branches: ["main"] + workflow_dispatch: + +env: + AWS_REGION: us-east-1 + +jobs: + publish-npm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - id: install-aws-cli + uses: unfor19/install-aws-cli-action@v1 + with: + version: 2 # default + verbose: false # default + arch: amd64 # allowed values: amd64, arm64 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1-node16 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ env.AWS_REGION }} + - uses: actions/setup-node@v3 + with: + node-version: 18 + - run: | + git config user.name github-actions + git config user.email github-actions@github.com + - run: | + npm run co:login + latest_published_version=$(npm show @roo-dev/roo-cline version) + current_package_version=$(node -p "require('./package.json').version") + echo "Latest published version: $latest_published_version" + echo "Current package version: $current_package_version" + if [ "$latest_published_version" == "$current_package_version" ]; then + echo "Latest version is already published to NPM" + else + npm install + npm run vsix + npm publish + echo "Successfully published to NPM" + fi diff --git a/.gitignore b/.gitignore index b943c9e909..404d9e2630 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ node_modules .vscode-test/ .DS_Store + +.npmrc \ No newline at end of file diff --git a/assets/icons/icon_Roo.png b/assets/icons/icon_Roo.png new file mode 100644 index 0000000000..14ee4f4e18 Binary files /dev/null and b/assets/icons/icon_Roo.png differ diff --git a/package.json b/package.json index 0421765d22..8ba3d51f82 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,8 @@ "name": "roo-cline", "displayName": "Roo Cline", "description": "Autonomous coding agent right in your IDE, capable of creating/editing files, running commands, using the browser, and more with your permission every step of the way.", - "version": "2.0.1", - "icon": "assets/icons/icon.png", + "version": "2.0.2", + "icon": "assets/icons/icon_Roo.png", "galleryBanner": { "color": "#617A91", "theme": "dark" @@ -12,7 +12,7 @@ "vscode": "1.93.1" }, "author": { - "name": "Cline Bot Inc." + "name": "Roo Vet" }, "repository": { "type": "git", @@ -131,7 +131,9 @@ "start:webview": "cd webview-ui && npm run start", "build:webview": "cd webview-ui && npm run build", "test:webview": "cd webview-ui && npm run test", - "publish:marketplace": "vsce publish && ovsx publish" + "publish:marketplace": "vsce publish && ovsx publish", + "co:login": "scripts/codeartifact-login.sh", + "install:cline": "scripts/install-cline-latest.sh" }, "devDependencies": { "@types/diff": "^5.2.1", @@ -181,5 +183,9 @@ "tree-sitter-wasms": "^0.1.11", "turndown": "^7.2.0", "web-tree-sitter": "^0.22.6" - } + }, + "files": [ + "bin/roo-cline-2.0.2.vsix", + "assets/icons/icon_Roo.png" + ] } diff --git a/scripts/codeartifact-login.sh b/scripts/codeartifact-login.sh new file mode 100644 index 0000000000..a1f007eed9 --- /dev/null +++ b/scripts/codeartifact-login.sh @@ -0,0 +1,15 @@ +AWS_VERSION=$(aws --version 2>&1 | cut -d/ -f2 | cut -d. -f1) +echo "aws-cli/$AWS_VERSION" + +if [ "$AWS_VERSION" -lt 2 ]; then + echo "Skipping .npmrc generation because AWS CLI version is less than 2" +else + echo "Generating .npmrc" + REPO_ENDPOINT=$(aws codeartifact get-repository-endpoint --domain roo --repository roo-dev --format npm | jq -r '.repositoryEndpoint') + echo "registry=$REPO_ENDPOINT" > .npmrc + + CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain roo --query authorizationToken --output text) + + REPO_PATH=$(echo $REPO_ENDPOINT | sed 's/https://g') + echo "$REPO_PATH:_authToken=$CODEARTIFACT_AUTH_TOKEN" >> .npmrc +fi \ No newline at end of file diff --git a/scripts/install-cline-latest.sh b/scripts/install-cline-latest.sh new file mode 100755 index 0000000000..e80783a34b --- /dev/null +++ b/scripts/install-cline-latest.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Install roo-cline +echo "Installing roo-cline..." +npm install roo-cline + +# Get version of installed roo-cline +VERSION=$(npm list roo-cline | grep roo-cline@ | cut -d'@' -f2 | tail -n1) +echo "Installed version: $VERSION" + +# Install extension in Cursor +echo "Installing Cursor extension..." +echo $VERSION +cursor --install-extension "node_modules/roo-cline/bin/roo-cline-$VERSION.vsix" + +# Uninstall roo-cline +echo "Cleaning up..." +npm uninstall roo-cline + +echo "Done!"