Build VS Code extension #4
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jobs: | |
linux-release-otp-25: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout erlang-language-platform | |
uses: "actions/checkout@v3" | |
- name: Checkout eqwalizer | |
uses: "actions/checkout@v3" | |
with: | |
repository: WhatsApp/eqwalizer | |
path: eqwalizer | |
- name: Set up GraalVM | |
uses: "DeLaGuardo/[email protected]" | |
with: | |
graalvm: '22.1.0' | |
java: 'java11' | |
- name: Install Native Image Plugin | |
run: gu install native-image | |
- name: Install musl-tools for rust toolchain | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: musl-tools | |
version: 1.0 | |
- name: Set up rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: x86_64-unknown-linux-musl | |
- name: Install OTP | |
uses: erlef/setup-beam@v1 | |
with: | |
otp-version: '25.2' | |
install-rebar: false | |
install-hex: false | |
- name: Install rebar3 | |
run: "curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3 && chmod +x rebar3" | |
- name: "add rebar3 to path" | |
run: 'echo "$GITHUB_WORKSPACE/rebar3" >> $GITHUB_PATH' | |
- name: Assemble eqwalizer.jar | |
run: "cd eqwalizer/eqwalizer; sbt assembly" | |
- name: Assemble eqwalizer binary | |
run: "cd eqwalizer/eqwalizer && native-image -H:IncludeResources=application.conf --no-server --no-fallback -jar target/scala-2.13/eqwalizer.jar eqwalizer" | |
- name: Test elp | |
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer/eqwalizer && cargo test --no-default-features --workspace --target x86_64-unknown-linux-musl" | |
- name: Assemble elp | |
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer/eqwalizer && cargo build --release --target x86_64-unknown-linux-musl" | |
- name: Add elp to path | |
run: 'echo "$GITHUB_WORKSPACE/target/x86_64-unknown-linux-musl/release" >> $GITHUB_PATH' | |
- name: Test eqwalizer | |
run: 'cd eqwalizer && sbt test' | |
- name: Upload eqwalizer.jar | |
uses: "actions/upload-artifact@v2" | |
with: | |
name: eqwalizer.jar | |
path: eqwalizer/eqwalizer/target/scala-2.13/eqwalizer.jar | |
- name: Upload eqwalizer native binary | |
uses: "actions/upload-artifact@v2" | |
with: | |
name: eqwalizer | |
path: ./eqwalizer/eqwalizer/eqwalizer | |
- name: Make elp-linux.tar.gz | |
run: 'tar -zcvf elp-linux.tar.gz -C target/x86_64-unknown-linux-musl/release/ elp' | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
id: get_release_url | |
name: Get release url | |
uses: "bruceadams/[email protected]" | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
name: Upload release elp-linux.tar.gz | |
uses: "actions/[email protected]" | |
with: | |
asset_content_type: application/octet-stream | |
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: Package Extension | |
working-directory: editors/code | |
run: vsce package | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
name: Upload Extension Package | |
working-directory: editors/code | |
uses: "actions/[email protected]" | |
with: | |
asset_content_type: application/octet-stream | |
asset_name: elp-linux.vsix | |
asset_path: elp-*.vsix | |
upload_url: "${{ steps.get_release_url.outputs.upload_url }}" | |
linux-release-otp-23: | |
needs: | |
- linux-release-otp-25 | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout erlang-language-platform | |
uses: "actions/checkout@v3" | |
- name: Checkout eqwalizer | |
uses: "actions/checkout@v3" | |
with: | |
repository: WhatsApp/eqwalizer | |
path: eqwalizer | |
- name: Set up GraalVM | |
uses: "DeLaGuardo/[email protected]" | |
with: | |
graalvm: '22.1.0' | |
java: 'java11' | |
- name: Install Native Image Plugin | |
run: gu install native-image | |
- name: Install musl-tools for rust toolchain | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: musl-tools | |
version: 1.0 | |
- name: Set up rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: x86_64-unknown-linux-musl | |
- name: Install OTP | |
uses: erlef/setup-beam@v1 | |
with: | |
otp-version: '23.3' | |
install-rebar: false | |
install-hex: false | |
- name: Install rebar3 | |
run: "curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3 && chmod +x rebar3" | |
- name: "add rebar3 to path" | |
run: 'echo "$GITHUB_WORKSPACE/rebar3" >> $GITHUB_PATH' | |
- name: Download eqwalizer.jar | |
uses: "actions/download-artifact@v2" | |
with: | |
name: eqwalizer.jar | |
path: eqwalizer/eqwalizer/target/scala-2.13 | |
- name: Assemble eqwalizer binary | |
run: "cd eqwalizer/eqwalizer && native-image -H:IncludeResources=application.conf --no-server --no-fallback -jar target/scala-2.13/eqwalizer.jar eqwalizer" | |
- name: Test elp | |
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer/eqwalizer && cargo test --no-default-features --workspace --target x86_64-unknown-linux-musl" | |
- name: Assemble elp | |
run: "export ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer/eqwalizer && cargo build --release --target x86_64-unknown-linux-musl" | |
- name: Make elp-linux-otp-23.tar.gz | |
run: 'tar -zcvf elp-linux-otp-23.tar.gz -C target/x86_64-unknown-linux-musl/release/ elp' | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
id: get_release_url | |
name: Get release url | |
uses: "bruceadams/[email protected]" | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
name: Upload release elp-linux-otp-23.tar.gz | |
uses: "actions/[email protected]" | |
with: | |
asset_content_type: application/octet-stream | |
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: Package Extension | |
working-directory: editors/code | |
run: vsce package | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
name: Upload Extension Package | |
working-directory: editors/code | |
uses: "actions/[email protected]" | |
with: | |
asset_content_type: application/octet-stream | |
asset_name: elp-linux-otp-23.vsix | |
asset_path: elp-*.vsix | |
upload_url: "${{ steps.get_release_url.outputs.upload_url }}" | |
macos-release-otp-25: | |
needs: | |
- linux-release-otp-25 | |
runs-on: macos-latest | |
steps: | |
- name: Checkout erlang-language-platform | |
uses: "actions/checkout@v3" | |
- name: Checkout eqwalizer | |
uses: "actions/checkout@v3" | |
with: | |
repository: WhatsApp/eqwalizer | |
path: eqwalizer | |
- name: Set up GraalVM | |
uses: "DeLaGuardo/[email protected]" | |
with: | |
graalvm: '22.1.0' | |
java: 'java11' | |
- name: Install Native Image Plugin | |
run: gu install native-image | |
- name: Install erlang | |
run: brew install erlang@25 | |
- name: Install rebar3 | |
run: "mkdir rebar3 && curl https://s3.amazonaws.com/rebar3/rebar3 -o rebar3/rebar3 && chmod +x rebar3/rebar3" | |
- name: Set up rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Download eqwalizer.jar | |
uses: "actions/download-artifact@v2" | |
with: | |
name: eqwalizer.jar | |
path: eqwalizer/eqwalizer/target/scala-2.13 | |
- name: Assemble eqwalizer binary | |
run: "cd eqwalizer/eqwalizer && native-image -H:IncludeResources=application.conf --no-server --no-fallback -jar target/scala-2.13/eqwalizer.jar eqwalizer" | |
- name: Test elp | |
run: "export PATH=$GITHUB_WORKSPACE/rebar3:/usr/local/opt/erlang@25/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/erlang@25/bin:$PATH ELP_EQWALIZER_PATH=$GITHUB_WORKSPACE/eqwalizer/eqwalizer/eqwalizer && cargo build --release" | |
- name: Make elp-macos.tar.gz | |
run: 'tar -zcvf elp-macos.tar.gz -C target/release/ elp' | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
id: get_release_url | |
name: Get release url | |
uses: "bruceadams/[email protected]" | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
name: Upload release elp-macos.tar.gz | |
uses: "actions/[email protected]" | |
with: | |
asset_content_type: application/octet-stream | |
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: Package Extension | |
working-directory: editors/code | |
run: vsce package | |
- env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
name: Upload Extension Package | |
working-directory: editors/code | |
uses: "actions/[email protected]" | |
with: | |
asset_content_type: application/octet-stream | |
asset_name: elp-macos.vsix | |
asset_path: elp-*.vsix | |
upload_url: "${{ steps.get_release_url.outputs.upload_url }}" |