Skip to content

Commit

Permalink
Add GitHub workflows to build/upload the VS Code extension
Browse files Browse the repository at this point in the history
Summary:
This represents the first step towards automating building and publishing of the ELP VS Code extension.
At this stage the extension does not include the ELP binary yet (the server needs to manually be installed and the extension can be pointed to it via a setting). This will be changed later.

The version of the extension has been changed to match the version of the next ELP release.

The pipeline contain lot of duplication. That can be fixed as a follow-up.

Reviewed By: alanz

Differential Revision: D48831779

fbshipit-source-id: c93382a27afc51ae2331a9452de71df054e00f1c
  • Loading branch information
robertoaloi authored and facebook-github-bot committed Aug 31, 2023
1 parent 016c930 commit c83c1a1
Show file tree
Hide file tree
Showing 4 changed files with 142 additions and 3 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,26 @@ jobs:
with:
name: eqwalizer.jar
path: eqwalizer/eqwalizer/target/scala-2.13/eqwalizer.jar
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install VSCE
run: npm install -g vsce
- name: npm install
working-directory: editors/code
run: npm install
- name: npm run compile
working-directory: editors/code
run: npm run compile
- name: Package Extension
working-directory: editors/code
run: vsce package
- name: Upload Extension
uses: "actions/upload-artifact@v3"
with:
name: elp-linux-${{ matrix.otp }}.vsix
path: editors/code/erlang-language-platform-*.vsix
macos-ci:
needs:
- linux-ci
Expand Down Expand Up @@ -95,6 +115,26 @@ jobs:
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/${{matrix.brew_erlang}}/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer/eqwalizer && cargo test --no-default-features --workspace"
- name: Assemble elp
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/${{matrix.brew_erlang}}/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer/eqwalizer && cargo build --release"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install VSCE
run: npm install -g vsce
- name: npm install
working-directory: editors/code
run: npm install
- name: npm run compile
working-directory: editors/code
run: npm run compile
- name: Package Extension
working-directory: editors/code
run: vsce package
- name: Upload Extension
uses: "actions/upload-artifact@v3"
with:
name: elp-macos-otp-25.vsix
path: editors/code/erlang-language-platform-*.vsix
name: erlang-language-platform CI
on:
push: {}
99 changes: 99 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,33 @@ jobs:
asset_name: elp-linux.tar.gz
asset_path: elp-linux.tar.gz
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install VSCE
run: npm install -g vsce
- name: npm install
working-directory: editors/code
run: npm install
- name: npm run compile
working-directory: editors/code
run: npm run compile
- name: Package Extension
working-directory: editors/code
run: vsce package
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Upload Extension Package
uses: "actions/[email protected]"
with:
asset_content_type: application/octet-stream
asset_name: elp-linux-otp-25.vsix
asset_path: editors/code/erlang-language-platform-*.vsix
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
- name: Publish extension to marketplace
working-directory: editors/code
run: vsce publish -p ${{ secrets.VSCE_PAT }}
linux-release-otp-23:
needs:
- linux-release-otp-25
Expand Down Expand Up @@ -138,6 +165,30 @@ jobs:
asset_name: elp-linux-otp-23.tar.gz
asset_path: elp-linux-otp-23.tar.gz
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install VSCE
run: npm install -g vsce
- name: npm install
working-directory: editors/code
run: npm install
- name: npm run compile
working-directory: editors/code
run: npm run compile
- name: Package Extension
working-directory: editors/code
run: vsce package
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Upload Extension Package
uses: "actions/[email protected]"
with:
asset_content_type: application/octet-stream
asset_name: elp-linux-otp-23.vsix
asset_path: editors/code/erlang-language-platform-*.vsix
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
macos-release-otp-25:
needs:
- linux-release-otp-25
Expand Down Expand Up @@ -190,6 +241,30 @@ jobs:
asset_name: elp-macos.tar.gz
asset_path: elp-macos.tar.gz
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install VSCE
run: npm install -g vsce
- name: npm install
working-directory: editors/code
run: npm install
- name: npm run compile
working-directory: editors/code
run: npm run compile
- name: Package Extension
working-directory: editors/code
run: vsce package
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Upload Extension Package
uses: "actions/[email protected]"
with:
asset_content_type: application/octet-stream
asset_name: elp-macos-otp-25.vsix
asset_path: editors/code/erlang-language-platform-*.vsix
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
macos-release-otp-23:
needs:
- linux-release-otp-25
Expand Down Expand Up @@ -242,6 +317,30 @@ jobs:
asset_name: elp-macos-otp-23.tar.gz
asset_path: elp-macos-otp-23.tar.gz
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install VSCE
run: npm install -g vsce
- name: npm install
working-directory: editors/code
run: npm install
- name: npm run compile
working-directory: editors/code
run: npm run compile
- name: Package Extension
working-directory: editors/code
run: vsce package
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Upload Extension Package
uses: "actions/[email protected]"
with:
asset_content_type: application/octet-stream
asset_name: elp-macos-otp-23.vsix
asset_path: editors/code/erlang-language-platform-*.vsix
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
name: erlang-language-platform release
on:
release:
Expand Down
4 changes: 2 additions & 2 deletions editors/code/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion editors/code/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "Erlang language server",
"author": "Meta Platforms, Inc",
"license": "Apache2",
"version": "1.0.0",
"version": "0.3.0",
"repository": {
"type": "git",
"url": "https://github.com/WhatsApp/erlang-language-platform"
Expand Down

0 comments on commit c83c1a1

Please sign in to comment.