From e978a3df50d9e76c41a27a64ba823adf7ef0a461 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Sun, 23 Aug 2020 18:54:03 +0200 Subject: [PATCH 1/3] refactor: use custom prebuild llvm distribution on ubuntu --- .github/actions/install-llvm/dist/index.js | 9 ++++++++- .github/actions/install-llvm/index.js | 9 ++++++++- .github/workflows/ci.yml | 18 +++++++++--------- .github/workflows/release.yml | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/.github/actions/install-llvm/dist/index.js b/.github/actions/install-llvm/dist/index.js index 6c13f27d7..a11a98893 100644 --- a/.github/actions/install-llvm/dist/index.js +++ b/.github/actions/install-llvm/dist/index.js @@ -1114,7 +1114,14 @@ async function execute(cmd) { (async () => { try { if(isLinux) { - await exec.exec("sudo apt install llvm-8 llvm-8-* liblld-8*"); + let llvmCachedPath = tc.find("llvm", "8.0.1", "linux"); + if(!llvmCachedPath) { + llvmCachedPath = await tc.downloadTool("https://github.com/mun-lang/build-support/releases/download/llvm-8.0.1/llvm-8.0.1-ubuntu-12.04-bionic.tar.xz") + .then(downloadPath => tc.extractTar(downloadPath, null)) + .then(extractPath => tc.cacheDir(extractPath, "llvm", "8.0.1", "linux")); + } + core.addPath(`${llvmCachedPath}/bin`) + core.exportVariable('LIBCLANG_PATH', `${llvmCachedPath}/bin`) } else if(isMacOS) { await exec.exec("brew install llvm@8") let llvmPath = await execute("brew --prefix llvm@8"); diff --git a/.github/actions/install-llvm/index.js b/.github/actions/install-llvm/index.js index 6009b64f0..e513eaf70 100644 --- a/.github/actions/install-llvm/index.js +++ b/.github/actions/install-llvm/index.js @@ -30,7 +30,14 @@ export async function execute(cmd) { (async () => { try { if(isLinux) { - await exec.exec("sudo apt install llvm-8 llvm-8-* liblld-8*"); + let llvmCachedPath = tc.find("llvm", "8.0.1", "linux"); + if(!llvmCachedPath) { + llvmCachedPath = await tc.downloadTool("https://github.com/mun-lang/build-support/releases/download/llvm-8.0.1/llvm-8.0.1-ubuntu-12.04-bionic.tar.xz") + .then(downloadPath => tc.extractTar(downloadPath, null)) + .then(extractPath => tc.cacheDir(extractPath, "llvm", "8.0.1", "linux")); + } + core.addPath(`${llvmCachedPath}/bin`) + core.exportVariable('LIBCLANG_PATH', `${llvmCachedPath}/bin`) } else if(isMacOS) { await exec.exec("brew install llvm@8") let llvmPath = await execute("brew --prefix llvm@8"); diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3fe145390..664a207a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: check: name: Check - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: @@ -38,9 +38,9 @@ jobs: fail-fast: false matrix: config: - - { os: "ubuntu-latest", toolchain: "stable"} - - { os: "ubuntu-latest", toolchain: "beta"} - - { os: "ubuntu-latest", toolchain: "nightly"} + - { os: "ubuntu-20.04", toolchain: "stable"} + - { os: "ubuntu-20.04", toolchain: "beta"} + - { os: "ubuntu-20.04", toolchain: "nightly"} - { os: "windows-2016", toolchain: "stable"} - { os: "macOS-latest", toolchain: "stable"} steps: @@ -60,14 +60,14 @@ jobs: uses: ./.github/actions/install-llvm - name: Cargo build - if: ${{ matrix.config.os == 'ubuntu-latest' && matrix.config.toolchain == 'stable' }} + if: ${{ matrix.config.os == 'ubuntu-20.04' && matrix.config.toolchain == 'stable' }} uses: actions-rs/cargo@v1 continue-on-error: ${{ matrix.config.toolchain == 'nightly' }} with: command: build - name: Install mdbook - if: ${{ matrix.config.os == 'ubuntu-latest' && matrix.config.toolchain == 'stable' }} + if: ${{ matrix.config.os == 'ubuntu-20.04' && matrix.config.toolchain == 'stable' }} uses: actions-rs/install@v0.1 with: crate: mdbook @@ -75,7 +75,7 @@ jobs: use-tool-cache: true - name: mdbook test - if: ${{ matrix.config.os == 'ubuntu-latest' && matrix.config.toolchain == 'stable' }} + if: ${{ matrix.config.os == 'ubuntu-20.04' && matrix.config.toolchain == 'stable' }} run: mdbook test book -L target/debug/deps - name: Cargo test @@ -87,7 +87,7 @@ jobs: style: name: Check Style - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 needs: check steps: - uses: actions/checkout@v2 @@ -118,7 +118,7 @@ jobs: args: --all-features tarpaulin: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 needs: check steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fa541694f..bdb1bb2b5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: matrix: config: - { - os: "ubuntu-latest", + os: "ubuntu-20.04", dir: linux64, artifacts: "mun libmun_runtime.so" } From 0468199afd45e5674e738b19057f57a66968b353 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Sun, 23 Aug 2020 19:29:29 +0200 Subject: [PATCH 2/3] fix: use xz decompression --- .github/actions/install-llvm/dist/index.js | 2 +- .github/actions/install-llvm/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/install-llvm/dist/index.js b/.github/actions/install-llvm/dist/index.js index a11a98893..fbecc8bed 100644 --- a/.github/actions/install-llvm/dist/index.js +++ b/.github/actions/install-llvm/dist/index.js @@ -1117,7 +1117,7 @@ async function execute(cmd) { let llvmCachedPath = tc.find("llvm", "8.0.1", "linux"); if(!llvmCachedPath) { llvmCachedPath = await tc.downloadTool("https://github.com/mun-lang/build-support/releases/download/llvm-8.0.1/llvm-8.0.1-ubuntu-12.04-bionic.tar.xz") - .then(downloadPath => tc.extractTar(downloadPath, null)) + .then(downloadPath => tc.extractTar(downloadPath, null, "xJ")) .then(extractPath => tc.cacheDir(extractPath, "llvm", "8.0.1", "linux")); } core.addPath(`${llvmCachedPath}/bin`) diff --git a/.github/actions/install-llvm/index.js b/.github/actions/install-llvm/index.js index e513eaf70..0e33654e5 100644 --- a/.github/actions/install-llvm/index.js +++ b/.github/actions/install-llvm/index.js @@ -33,7 +33,7 @@ export async function execute(cmd) { let llvmCachedPath = tc.find("llvm", "8.0.1", "linux"); if(!llvmCachedPath) { llvmCachedPath = await tc.downloadTool("https://github.com/mun-lang/build-support/releases/download/llvm-8.0.1/llvm-8.0.1-ubuntu-12.04-bionic.tar.xz") - .then(downloadPath => tc.extractTar(downloadPath, null)) + .then(downloadPath => tc.extractTar(downloadPath, null, "xJ")) .then(extractPath => tc.cacheDir(extractPath, "llvm", "8.0.1", "linux")); } core.addPath(`${llvmCachedPath}/bin`) From 5748ba6b40ef9bb4bb3c154d1155181076a78c20 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Sun, 23 Aug 2020 19:40:49 +0200 Subject: [PATCH 3/3] tmp: create artifacts --- .github/workflows/release.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bdb1bb2b5..e4b934cb4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,9 +1,10 @@ name: release -on: - push: - branches: - - master - - release/* +# on: +# push: +# branches: +# - master +# - release/* +on: [pull_request, push] env: RUSTFLAGS: -Dwarnings