Improve installation section in README #6311
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
# Copyright (C) 2020 Matthew Glazar | |
# See end of file for extended copyright information. | |
name: build static | |
on: | |
push: | |
pull_request: | |
types: [opened, synchronize] | |
jobs: | |
build: | |
name: ${{ matrix.toolchain.name }} | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- {runs_on: macos-12, name: "macOS x86_64", archive_name: "macos", archive_extension: ".tar.gz", test: true, CC: /usr/local/opt/llvm@15/bin/clang, CXX: /usr/local/opt/llvm@15/bin/clang++, CFLAGS: "-isystem /usr/local/opt/llvm@15/include -isystem /usr/local/opt/llvm@15/include/c++/v1 -mmacosx-version-min=10.9 -D_LIBCPP_DISABLE_AVAILABILITY", LDFLAGS: "-L/usr/local/opt/llvm@15/lib -mlinker-version=278 -nostdlib++ /usr/local/opt/llvm@15/lib/c++/libc++.a /usr/local/opt/llvm@15/lib/c++/libc++abi.a", CMAKE_FLAGS: "-G Ninja", homebrew_packages: "ninja"} | |
- {runs_on: stracle-macos-aarch64, name: "macOS AArch64", archive_name: "macos-aarch64", archive_extension: ".tar.gz", test: true, CFLAGS: "-mmacosx-version-min=11.0", CMAKE_FLAGS: "-G Ninja"} | |
- {runs_on: ubuntu-latest, name: "Linux x86_64", archive_name: "linux", archive_extension: ".tar.gz", docker_container: "ghcr.io/quick-lint/quick-lint-js-github-baseline-builder:v1", test: true, LDFLAGS: "-static-libgcc -static-libstdc++", CMAKE_FLAGS: "-G Ninja"} | |
- {runs_on: ubuntu-latest, name: "Linux ARM", archive_name: "linux-armhf", archive_extension: ".tar.gz", docker_container: "ghcr.io/quick-lint/quick-lint-js-github-cross-builder:v3", test: false, cross_compiling: true, CMAKE_FLAGS: "-DCMAKE_TOOLCHAIN_FILE=.github/toolchain-linux-armhf.cmake -G Ninja", LDFLAGS: "-static-libgcc -static-libstdc++"} | |
- {runs_on: ubuntu-latest, name: "Linux AArch64", archive_name: "linux-aarch64", archive_extension: ".tar.gz", docker_container: "ghcr.io/quick-lint/quick-lint-js-github-cross-builder:v3", test: false, cross_compiling: true, CMAKE_FLAGS: "-DCMAKE_TOOLCHAIN_FILE=.github/toolchain-linux-aarch64.cmake -G Ninja", LDFLAGS: "-static-libgcc -static-libstdc++"} | |
# HACK(strager): -Wl,-allow-multiple-definition works around a GCC bug: https://sourceware.org/bugzilla/show_bug.cgi?id=12762 | |
- {runs_on: windows-2022, name: "Windows x86", archive_name: "windows-x86", archive_extension: ".zip", test: true, CC: "c:/msys64/mingw32/bin/gcc.exe", CXX: "c:/msys64/mingw32/bin/g++.exe", CMAKE_FLAGS: "-G Ninja", chocolatey_packages: "ninja", msys2_packages: "mingw-w64-i686-gcc ninja", LDFLAGS: "-static -Wl,-allow-multiple-definition"} | |
- {runs_on: windows-2022, name: "Windows x64", archive_name: "windows", archive_extension: ".zip", test: true, CC: "c:/msys64/ucrt64/bin/gcc.exe", CXX: "c:/msys64/ucrt64/bin/g++.exe", CMAKE_FLAGS: "-G Ninja", chocolatey_packages: "ninja", msys2_packages: "mingw-w64-ucrt-x86_64-gcc ninja", LDFLAGS: "-static"} | |
- {runs_on: ubuntu-latest, name: "Windows ARM", archive_name: "windows-arm", archive_extension: ".zip", docker_container: "ghcr.io/quick-lint/quick-lint-js-github-mingw-builder:v3", test: false, cross_compiling: true, CMAKE_FLAGS: "-DCMAKE_TOOLCHAIN_FILE=.github/toolchain-mingw-armv7.cmake -G Ninja", LDFLAGS: "-static -Wl,-allow-multiple-definition"} | |
- {runs_on: ubuntu-latest, name: "Windows ARM64", archive_name: "windows-arm64", archive_extension: ".zip", docker_container: "ghcr.io/quick-lint/quick-lint-js-github-mingw-builder:v3", test: false, cross_compiling: true, CMAKE_FLAGS: "-DCMAKE_TOOLCHAIN_FILE=.github/toolchain-mingw-aarch64.cmake -G Ninja", LDFLAGS: "-static -Wl,-allow-multiple-definition"} | |
runs-on: ${{ matrix.toolchain.runs_on }} | |
container: ${{ matrix.toolchain.docker_container }} | |
env: | |
CMAKE_CXX_COMPILER: ${{ matrix.toolchain.CXX }} | |
CMAKE_CXX_FLAGS: ${{ matrix.toolchain.CFLAGS }} | |
CMAKE_C_COMPILER: ${{ matrix.toolchain.CC }} | |
CMAKE_C_FLAGS: ${{ matrix.toolchain.CFLAGS }} | |
CMAKE_EXE_LINKER_FLAGS: ${{ matrix.toolchain.LDFLAGS }} | |
CMAKE_EXTRA_FLAGS: ${{ matrix.toolchain.CMAKE_FLAGS }} | |
CMAKE_SHARED_LINKER_FLAGS: ${{ matrix.toolchain.LDFLAGS }} | |
QLJS_COLLECT_COPYRIGHT_NO_WARNINGS: 1 | |
steps: | |
- name: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- name: update $PATH | |
if: ${{ matrix.toolchain.msys2_packages }} | |
run: | | |
# For DLLs needed by GCC: | |
echo "c:/msys64/mingw32/bin" >>"${GITHUB_PATH}" | |
echo "c:/msys64/ucrt64/bin" >>"${GITHUB_PATH}" | |
shell: bash | |
- name: install dependencies (Chocolatey) | |
if: ${{ matrix.toolchain.chocolatey_packages }} | |
run: choco install --yes ${{ matrix.toolchain.chocolatey_packages }} | |
shell: powershell | |
- name: install dependencies (Homebrew) | |
if: ${{ matrix.toolchain.homebrew_packages }} | |
run: brew install ${{ matrix.toolchain.homebrew_packages }} | |
- name: install dependencies (MSYS2) | |
if: ${{ matrix.toolchain.msys2_packages }} | |
run: c:/msys64/usr/bin/pacman.exe --sync --noconfirm ${{ matrix.toolchain.msys2_packages }} | |
- name: build tools for cross compilation | |
if: ${{ matrix.toolchain.cross_compiling }} | |
run: | | |
unset CC CXX | |
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF -S . -B build-tools -G Ninja | |
cmake --build build-tools --config Debug --target quick-lint-js-build-tools | |
- name: configure | |
shell: "python3 {0}" | |
run: | | |
import os | |
import shlex | |
import subprocess | |
def var(name): | |
return os.environ.get(name, '') | |
command = [ | |
"cmake", | |
"-DCMAKE_BUILD_TYPE=Release", | |
"-DBUILD_TESTING=${{ matrix.toolchain.test }}", | |
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=YES", | |
"-S", ".", "-B", "build", | |
f"-DCMAKE_C_FLAGS={var('CMAKE_C_FLAGS')}", | |
f"-DCMAKE_CXX_FLAGS={var('CMAKE_CXX_FLAGS')}", | |
f"-DCMAKE_EXE_LINKER_FLAGS={var('CMAKE_EXE_LINKER_FLAGS')}", | |
f"-DCMAKE_SHARED_LINKER_FLAGS={var('CMAKE_SHARED_LINKER_FLAGS')}", | |
] | |
c_compiler = var('CMAKE_C_COMPILER') | |
if c_compiler: command.append(f"-DCMAKE_C_COMPILER={c_compiler}") | |
cxx_compiler = var('CMAKE_CXX_COMPILER') | |
if cxx_compiler: command.append(f"-DCMAKE_CXX_COMPILER={cxx_compiler}") | |
if "${{ matrix.toolchain.cross_compiling }}": | |
command.append(f"-DQUICK_LINT_JS_USE_BUILD_TOOLS={os.getcwd()}/build-tools") | |
command.extend(var('CMAKE_EXTRA_FLAGS').split()) | |
print(" ".join(shlex.quote(arg) for arg in command), flush=True) | |
result = subprocess.run(command) | |
exit(result.returncode) | |
- name: build | |
run: cmake --build build --config Release | |
- name: test | |
if: ${{ matrix.toolchain.test }} | |
run: cd build && ctest --build-config Release --verbose | |
- name: install | |
run: cmake --install build --prefix usr --strip | |
- name: bundle build into .tar.gz | |
if: ${{ matrix.toolchain.archive_extension == '.tar.gz' }} | |
run: | | |
mkdir temp | |
mv usr temp/quick-lint-js | |
tar czf ${{ matrix.toolchain.archive_name }}${{ matrix.toolchain.archive_extension }} -C temp/ quick-lint-js | |
- name: bundle build into .zip | |
if: ${{ matrix.toolchain.archive_extension == '.zip' }} | |
uses: quick-lint/action-zip@26a249fb00d43ca98dad77a4b3838025fc226aa1 # v1.1 | |
with: | |
dest: ${{ matrix.toolchain.archive_name }}${{ matrix.toolchain.archive_extension }} | |
files: usr/ | |
recursive: true | |
- name: upload build to workflow | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
if-no-files-found: error | |
name: quick-lint-js-${{ matrix.toolchain.archive_name }}-${{ github.sha }} | |
path: ${{ matrix.toolchain.archive_name }}${{ matrix.toolchain.archive_extension }} | |
- name: upload build to long-term storage | |
if: ${{ github.event_name == 'push' && github.repository_owner == 'quick-lint' != null }} | |
uses: quick-lint/sftp-upload@1fa54164d4bdd081207a6e54ec143d8dda3a7fb8 # v3 | |
with: | |
host: ${{ secrets.artifacts_host }} | |
local-file-globs: ${{ matrix.toolchain.archive_name }}${{ matrix.toolchain.archive_extension }} | |
private-key: ${{ secrets.artifacts_key }} | |
remote-directory: ${{ secrets.artifacts_root }}/builds/${{ github.sha }}/manual/ | |
user: ${{ secrets.artifacts_user }} | |
test: | |
name: test on ${{ matrix.os.name }} | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- {runs_on: windows-latest, name: "Windows", archive_name: "windows", exe_file: "bin/quick-lint-js.exe"} | |
- {runs_on: macos-12, name: "macOS 12", archive_name: "macos", exe_file: "bin/quick-lint-js"} | |
- {runs_on: ubuntu-latest, docker_container: "archlinux:base", name: "Arch Linux", archive_name: "linux", exe_file: "bin/quick-lint-js"} | |
- {runs_on: ubuntu-latest, docker_container: "debian:bullseye", name: "Debian 11 Bullseye", archive_name: "linux", exe_file: "bin/quick-lint-js"} | |
- {runs_on: ubuntu-latest, docker_container: "debian:buster", name: "Debian 10 Buster", archive_name: "linux", exe_file: "bin/quick-lint-js"} | |
- {runs_on: ubuntu-latest, docker_container: "fedora:35", name: "Fedora 35", archive_name: "linux", exe_file: "bin/quick-lint-js"} | |
- {runs_on: ubuntu-latest, docker_container: "fedora:36", name: "Fedora 36", archive_name: "linux", exe_file: "bin/quick-lint-js"} | |
# TODO(strager): Fix Node.js 20 used by actions/download-artifact, or drop support for this OS. | |
#- {runs_on: ubuntu-latest, docker_container: "ubuntu:18.04", name: "Ubuntu 18.04 LTS Bionic", archive_name: "linux", exe_file: "bin/quick-lint-js"} | |
- {runs_on: ubuntu-latest, docker_container: "ubuntu:20.04", name: "Ubuntu 20.04 LTS Focal", archive_name: "linux", exe_file: "bin/quick-lint-js"} | |
runs-on: ${{ matrix.os.runs_on }} | |
container: ${{ matrix.os.docker_container }} | |
steps: | |
- name: OS information | |
run: | | |
exec 2>&1 | |
set -x | |
cat /etc/lsb-release || : | |
cat /etc/os-release || : | |
cat /etc/system-release || : | |
sw_vers || : | |
systeminfo || : | |
uname -a || : | |
shell: bash | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-${{ matrix.os.archive_name }}-${{ github.sha }} | |
- name: unpack .zip build | |
if: ${{ matrix.os.archive_name == 'windows' }} | |
run: Expand-Archive -LiteralPath ${{ matrix.os.archive_name }}.zip -DestinationPath quick-lint-js | |
shell: powershell | |
- name: unpack .tar.gz build | |
if: ${{ matrix.os.archive_name != 'windows' }} | |
run: tar xf ${{ matrix.os.archive_name }}.tar.gz | |
- name: test | |
run: DYLD_BIND_AT_LAUNCH=1 LD_BIND_NOW=1 quick-lint-js/${{ matrix.os.exe_file }} --version | |
shell: bash | |
package-npm: | |
name: npm package | |
needs: [build, test] | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-linux-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-linux-armhf-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-linux-aarch64-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-macos-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-macos-aarch64-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-x86-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-arm64-${{ github.sha }} | |
path: ./ | |
- name: extract downloaded archives | |
run: | | |
set -x | |
tar xf linux.tar.gz | |
mv quick-lint-js dist/npm/linux-x64 | |
tar xf linux-armhf.tar.gz | |
mv quick-lint-js dist/npm/linux-arm | |
tar xf linux-aarch64.tar.gz | |
mv quick-lint-js dist/npm/linux-arm64 | |
tar xf macos.tar.gz | |
mv quick-lint-js dist/npm/darwin-x64 | |
tar xf macos-aarch64.tar.gz | |
mv quick-lint-js dist/npm/darwin-arm64 | |
mkdir dist/npm/win32-x64 | |
unzip windows.zip -d dist/npm/win32-x64/ | |
mkdir dist/npm/win32-arm64 | |
unzip windows-arm64.zip -d dist/npm/win32-arm64/ | |
mkdir dist/npm/win32-ia32 | |
unzip windows-x86.zip -d dist/npm/win32-ia32/ | |
- name: package | |
run: npm pack ./dist/npm | |
- name: upload package to workflow | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
if-no-files-found: error | |
name: quick-lint-js-npm-${{ github.sha }} | |
path: quick-lint-js-*.tgz | |
- name: upload package to long-term storage | |
if: ${{ github.event_name == 'push' && github.repository_owner == 'quick-lint' != null }} | |
uses: quick-lint/sftp-upload@1fa54164d4bdd081207a6e54ec143d8dda3a7fb8 # v3 | |
with: | |
host: ${{ secrets.artifacts_host }} | |
local-file-globs: quick-lint-js-*.tgz | |
private-key: ${{ secrets.artifacts_key }} | |
remote-directory: ${{ secrets.artifacts_root }}/builds/${{ github.sha }}/npm/ | |
user: ${{ secrets.artifacts_user }} | |
test-npm-package: | |
name: test npm package on ${{ matrix.os.name }} with ${{ matrix.manager.name }} | |
needs: package-npm | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- {runs_on: windows-latest, name: "Windows", test_cmd: true} | |
- {runs_on: macos-12, name: "macOS 12"} | |
- {runs_on: ubuntu-latest, name: "Ubuntu", global_install_command_prefix: "sudo"} | |
manager: | |
- {name: "npm", install_command: "npm install", global: false} | |
- {name: "npm (--global)", install_command: "npm install --global --unsafe-perm", global: true} | |
- {name: "Yarn", install_command: "yarn add", global: false} | |
runs-on: ${{ matrix.os.runs_on }} | |
steps: | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-npm-${{ github.sha }} | |
- name: install globally | |
if: ${{ matrix.manager.global }} | |
run: ${{ matrix.os.global_install_command_prefix }} ${{ matrix.manager.install_command }} ./quick-lint-js-*.tgz | |
shell: bash | |
- name: test globally | |
if: ${{ matrix.manager.global }} | |
run: quick-lint-js --version | |
- name: install locally | |
if: ${{ !matrix.manager.global }} | |
run: | | |
echo '{}' >package.json | |
${{ matrix.manager.install_command }} ./quick-lint-js-*.tgz | |
shell: bash | |
- name: test locally | |
if: ${{ !matrix.manager.global }} | |
run: ./node_modules/.bin/quick-lint-js --version | |
shell: bash | |
- name: test locally (.cmd) | |
if: ${{ !matrix.manager.global && matrix.os.test_cmd }} | |
run: node_modules/.bin/quick-lint-js.cmd --version | |
package-chocolatey: | |
name: Chocolatey package | |
needs: build | |
runs-on: ubuntu-latest | |
container: ghcr.io/quick-lint/quick-lint-js-github-go-builder:v1 | |
steps: | |
- name: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-x86-${{ github.sha }} | |
path: ./ | |
- name: package | |
run: go run ./dist/chocolatey/build.go -x86-ZIP ./windows-x86.zip -x64-ZIP ./windows.zip -Out ./quick-lint-js.nupkg | |
- name: upload package to workflow | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
if-no-files-found: error | |
name: quick-lint-js-chocolatey-${{ github.sha }} | |
path: quick-lint-js.nupkg | |
- name: upload package to long-term storage | |
if: ${{ github.event_name == 'push' && github.repository_owner == 'quick-lint' != null }} | |
uses: quick-lint/sftp-upload@1fa54164d4bdd081207a6e54ec143d8dda3a7fb8 # v3 | |
with: | |
host: ${{ secrets.artifacts_host }} | |
local-file-globs: quick-lint-js.nupkg | |
private-key: ${{ secrets.artifacts_key }} | |
remote-directory: ${{ secrets.artifacts_root }}/builds/${{ github.sha }}/chocolatey/ | |
user: ${{ secrets.artifacts_user }} | |
test-chocolatey-package: | |
name: test Chocolatey package | |
needs: package-chocolatey | |
runs-on: windows-latest | |
steps: | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-chocolatey-${{ github.sha }} | |
- name: install | |
run: choco install quick-lint-js -s . | |
- name: test | |
run: quick-lint-js --version | |
package-scoop: | |
name: Scoop package | |
needs: build | |
runs-on: ubuntu-latest | |
container: ghcr.io/quick-lint/quick-lint-js-github-go-builder:v1 | |
steps: | |
- name: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-${{ github.sha }} | |
path: ./ | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-x86-${{ github.sha }} | |
path: ./ | |
- name: create manifest | |
run: go run ./dist/scoop/make-manifest.go -BaseURI 'https://c.quick-lint-js.com/builds/${{ github.sha }}/' -x86-ZIP ./windows-x86.zip -x64-ZIP ./windows.zip -Out ./quick-lint-js.json | |
- name: upload manifest to workflow | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
if-no-files-found: error | |
name: quick-lint-js-scoop-${{ github.sha }} | |
path: quick-lint-js.json | |
- name: upload manifest to long-term storage | |
if: ${{ github.event_name == 'push' && github.repository_owner == 'quick-lint' != null }} | |
uses: quick-lint/sftp-upload@1fa54164d4bdd081207a6e54ec143d8dda3a7fb8 # v3 | |
with: | |
host: ${{ secrets.artifacts_host }} | |
local-file-globs: quick-lint-js.json | |
private-key: ${{ secrets.artifacts_key }} | |
remote-directory: ${{ secrets.artifacts_root }}/builds/${{ github.sha }}/scoop/ | |
user: ${{ secrets.artifacts_user }} | |
package-msix: | |
name: MSIX installer | |
needs: build | |
runs-on: windows-2022 | |
steps: | |
- name: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-windows-${{ github.sha }} | |
path: ./ | |
- name: extract ZIP | |
run: Expand-Archive -LiteralPath windows.zip -DestinationPath quick-lint-js | |
shell: powershell | |
- name: create MSIX | |
run: | | |
PATH="${PATH}:/c/Program Files (x86)/Windows Kits/10/App Certification Kit" | |
go run ./dist/msix/build-unsigned-msix.go -EXE ./quick-lint-js/bin/quick-lint-js.exe -License ./quick-lint-js/share/doc/quick-lint-js/copyright -Out quick-lint-js.msix | |
shell: bash | |
- name: upload MSIX to workflow | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
if-no-files-found: error | |
name: quick-lint-js-msix-${{ github.sha }} | |
path: quick-lint-js.msix | |
- name: upload MSIX to long-term storage | |
if: ${{ github.event_name == 'push' && github.repository_owner == 'quick-lint' != null }} | |
uses: quick-lint/sftp-upload@1fa54164d4bdd081207a6e54ec143d8dda3a7fb8 # v3 | |
with: | |
host: ${{ secrets.artifacts_host }} | |
local-file-globs: quick-lint-js.msix | |
private-key: ${{ secrets.artifacts_key }} | |
remote-directory: ${{ secrets.artifacts_root }}/builds/${{ github.sha }}/windows/ | |
user: ${{ secrets.artifacts_user }} | |
package-winget: | |
name: winget manifests | |
needs: package-msix | |
runs-on: ubuntu-latest | |
container: ghcr.io/quick-lint/quick-lint-js-github-go-builder:v1 | |
steps: | |
- name: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-msix-${{ github.sha }} | |
path: ./ | |
- name: create manifests | |
run: go run ./dist/winget/make-manifests.go -BaseURI 'https://c.quick-lint-js.com/builds/${{ github.sha }}/' -MSIX ./quick-lint-js.msix -OutDir winget-manifests | |
- name: upload manifests to workflow | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
if-no-files-found: error | |
name: quick-lint-js-winget-${{ github.sha }} | |
path: winget-manifests/ | |
- name: upload manifests to long-term storage | |
if: ${{ github.event_name == 'push' && github.repository_owner == 'quick-lint' != null }} | |
uses: quick-lint/sftp-upload@1fa54164d4bdd081207a6e54ec143d8dda3a7fb8 # v3 | |
with: | |
host: ${{ secrets.artifacts_host }} | |
local-file-globs: winget-manifests/* | |
private-key: ${{ secrets.artifacts_key }} | |
remote-directory: ${{ secrets.artifacts_root }}/builds/${{ github.sha }}/winget/ | |
user: ${{ secrets.artifacts_user }} | |
# quick-lint-js finds bugs in JavaScript programs. | |
# Copyright (C) 2020 Matthew Glazar | |
# | |
# This file is part of quick-lint-js. | |
# | |
# quick-lint-js is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# quick-lint-js is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License | |
# along with quick-lint-js. If not, see <https://www.gnu.org/licenses/>. |