refactor: upgrade to clang-format 18 #6249
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: Debian package | |
on: | |
push: | |
pull_request: | |
types: [opened, synchronize] | |
jobs: | |
# TODO(strager): Also build ARM (32-bit) .deb-s. | |
build-deb: | |
name: build .deb ${{ matrix.os.arch }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- {arch: amd64, runs_on: ubuntu-latest, docker_container: "ghcr.io/quick-lint/quick-lint-js-github-baseline-builder:v1", build_env: ""} | |
- {arch: arm64, runs_on: stracle-linux-aarch64, docker_container: "ghcr.io/quick-lint/quick-lint-js-github-builder-aarch64:v1", build_env: ""} | |
runs-on: ${{ matrix.os.runs_on }} | |
container: ${{ matrix.os.docker_container }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 | |
# HACK(strager): Work around the following error from | |
# build.sh: | |
# | |
# fatal: detected dubious ownership in repository at '/__w/quick-lint-js/quick-lint-js' | |
# | |
# See also: https://github.com/actions/checkout/issues/760 | |
- name: work around permission issue | |
run: git config --global --add safe.directory /__w/quick-lint-js/quick-lint-js | |
- name: build | |
run: ${{ matrix.os.build_env }} ./dist/debian/build.sh --bionic | |
- name: upload build to workflow | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
if-no-files-found: error | |
name: quick-lint-js-deb-${{ matrix.os.arch }}-${{ github.sha }} | |
path: | | |
dist/debian/build/quick-lint-js-dbgsym_* | |
dist/debian/build/quick-lint-js-vim_* | |
dist/debian/build/quick-lint-js_* | |
- 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: | | |
dist/debian/build/quick-lint-js-dbgsym_* | |
dist/debian/build/quick-lint-js-vim_* | |
dist/debian/build/quick-lint-js_* | |
private-key: ${{ secrets.artifacts_key }} | |
remote-directory: ${{ secrets.artifacts_root }}/builds/${{ github.sha }}/debian/${{ matrix.os.arch }}/ | |
user: ${{ secrets.artifacts_user }} | |
test-deb: | |
name: test on ${{ matrix.os.name }} ${{ matrix.os.arch }} | |
needs: build-deb | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- {arch: amd64, runs_on: ubuntu-latest, docker_container: "debian:bullseye", name: "Debian 11 Bullseye"} | |
- {arch: amd64, runs_on: ubuntu-latest, docker_container: "debian:buster", name: "Debian 10 Buster"} | |
- {arch: amd64, runs_on: ubuntu-latest, docker_container: "pureos/pureos:amber-latest", name: "PureOS Amber"} | |
# TODO(strager): Fix Node.js 20 used by actions/download-artifact, or drop support for these OSs. | |
#- {arch: amd64, runs_on: ubuntu-latest, docker_container: "ubuntu:16.04", name: "Ubuntu 16.04 LTS Xenial"} | |
#- {arch: amd64, runs_on: ubuntu-latest, docker_container: "ubuntu:18.04", name: "Ubuntu 18.04 LTS Bionic"} | |
- {arch: amd64, runs_on: ubuntu-latest, docker_container: "ubuntu:20.04", name: "Ubuntu 20.04 LTS Focal"} | |
- {arch: arm64, runs_on: stracle-linux-aarch64, docker_container: "debian:bullseye", name: "Debian 11 Bullseye"} | |
- {arch: arm64, runs_on: stracle-linux-aarch64, docker_container: "debian:buster", name: "Debian 10 Buster"} | |
- {arch: arm64, runs_on: stracle-linux-aarch64, docker_container: "ubuntu:20.04", name: "Ubuntu 20.04 LTS Focal"} | |
- {arch: arm64, runs_on: stracle-linux-aarch64, docker_container: "ubuntu:22.04", name: "Ubuntu 22.04 LTS Jammy"} | |
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 || : | |
uname -a || : | |
- name: update apt | |
run: apt-get update | |
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: quick-lint-js-deb-${{ matrix.os.arch }}-${{ github.sha }} | |
- name: install quick-lint-js | |
run: dpkg -i quick-lint-js_*.deb | |
- name: test quick-lint-js | |
run: quick-lint-js --version | |
- name: install quick-lint-js-vim dependencies | |
run: DEBIAN_FRONTEND=noninteractive apt-get install -y vim vim-addon-manager | |
- name: install quick-lint-js-vim | |
run: dpkg -i quick-lint-js-vim_*.deb | |
# 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/>. |