From fb26efd01fdeab763a6371595b712cea6264c701 Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Fri, 10 Mar 2023 08:15:59 +1300 Subject: [PATCH 1/6] chore: Ignore JetBrains IDEA configuration --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index ffdd18cd..c8b55325 100644 --- a/.gitignore +++ b/.gitignore @@ -91,3 +91,6 @@ typings/ # DynamoDB Local files .dynamodb/ + +# JetBrains IDEA configuration +/.idea/ From fc65b450f1701d2017b9e2c52d8bcc87b98506c9 Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Fri, 10 Mar 2023 08:29:20 +1300 Subject: [PATCH 2/6] feat: Configure editors Based on the content of files already in the repo. --- .editorconfig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..d0b40414 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true + +[LICENSE] +indent_size = unset From 0df6e96f384649c52e9b766cf8486cf38d1b8c81 Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Fri, 10 Mar 2023 08:30:04 +1300 Subject: [PATCH 3/6] refactor: Format files using Prettier Actual command: `nix-shell --packages nodePackages.prettier --pure --run 'prettier --write .'`. --- .github/dependabot.yml | 19 ++++--- .github/workflows/test.yml | 106 ++++++++++++++++++------------------- README.md | 22 ++++---- action.yml | 24 ++++----- 4 files changed, 85 insertions(+), 86 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1a1a1c85..66647b53 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,13 +1,12 @@ version: 2 updates: - -- package-ecosystem: github-actions - directory: "/" - schedule: - interval: daily - time: '00:00' - timezone: UTC - open-pull-requests-limit: 10 - commit-message: + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily + time: "00:00" + timezone: UTC + open-pull-requests-limit: 10 + commit-message: prefix: "chore" - include: "scope" \ No newline at end of file + include: "scope" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c1b96e2b..0bcd1b4c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,29 +12,29 @@ jobs: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - name: Install Nix - uses: ./ - with: - nix_path: nixpkgs=channel:nixos-22.11 - - run: nix-env -iA cachix -f https://cachix.org/api/v1/install - - run: cat /etc/nix/nix.conf - # cachix should be available and be able to configure a cache - - run: cachix use cachix - - run: nix-build test.nix + - uses: actions/checkout@v3 + - name: Install Nix + uses: ./ + with: + nix_path: nixpkgs=channel:nixos-22.11 + - run: nix-env -iA cachix -f https://cachix.org/api/v1/install + - run: cat /etc/nix/nix.conf + # cachix should be available and be able to configure a cache + - run: cachix use cachix + - run: nix-build test.nix custom-nix-path: strategy: matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - name: Install Nix - uses: ./ - with: - nix_path: nixpkgs=channel:nixos-20.03 - - run: test $NIX_PATH == "nixpkgs=channel:nixos-20.03" - - run: nix-build test.nix + - uses: actions/checkout@v3 + - name: Install Nix + uses: ./ + with: + nix_path: nixpkgs=channel:nixos-20.03 + - run: test $NIX_PATH == "nixpkgs=channel:nixos-20.03" + - run: nix-build test.nix extra-nix-config: strategy: @@ -42,15 +42,15 @@ jobs: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - name: Install Nix - uses: ./ - with: - nix_path: nixpkgs=channel:nixos-22.11 - extra_nix_config: | - sandbox = relaxed - - run: cat /etc/nix/nix.conf - - run: nix-build test.nix --arg noChroot true + - uses: actions/checkout@v3 + - name: Install Nix + uses: ./ + with: + nix_path: nixpkgs=channel:nixos-22.11 + extra_nix_config: | + sandbox = relaxed + - run: cat /etc/nix/nix.conf + - run: nix-build test.nix --arg noChroot true flakes: strategy: @@ -58,10 +58,10 @@ jobs: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - name: Install Nix - uses: ./ - - run: nix flake show github:NixOS/nixpkgs + - uses: actions/checkout@v3 + - name: Install Nix + uses: ./ + - run: nix flake show github:NixOS/nixpkgs installer-options: strategy: @@ -69,36 +69,36 @@ jobs: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - name: Install Nix - uses: ./ - with: - nix_path: nixpkgs=channel:nixos-22.11 - install_options: --tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve - install_url: https://nixos-nix-install-tests.cachix.org/serve/s62m7lc0q0mz2mxxm9q0kkrcg90njzhq/install - - run: nix-build test.nix + - uses: actions/checkout@v3 + - name: Install Nix + uses: ./ + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_options: --tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve + install_url: https://nixos-nix-install-tests.cachix.org/serve/s62m7lc0q0mz2mxxm9q0kkrcg90njzhq/install + - run: nix-build test.nix oldest-supported-installer: strategy: - matrix: - os: [ubuntu-latest, macos-latest] + matrix: + os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - name: Install Nix - uses: ./ - with: - nix_path: nixpkgs=channel:nixos-22.11 - install_url: https://releases.nixos.org/nix/nix-2.8.0/install - - run: nix-build test.nix + - uses: actions/checkout@v3 + - name: Install Nix + uses: ./ + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.8.0/install + - run: nix-build test.nix act-support: strategy: - matrix: - os: [ubuntu-latest] + matrix: + os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 - - run: curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash - - run: docker pull ghcr.io/catthehacker/ubuntu:js-20.04 - - run: ./bin/act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:js-20.04 push -j simple-build + - uses: actions/checkout@v3 + - run: curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash + - run: docker pull ghcr.io/catthehacker/ubuntu:js-20.04 + - run: ./bin/act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:js-20.04 push -j simple-build diff --git a/README.md b/README.md index 220087df..07ec76f2 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,11 @@ jobs: tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 - with: - nix_path: nixpkgs=channel:nixos-unstable - - run: nix-build + - uses: actions/checkout@v3 + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-unstable + - run: nix-build ``` ## Usage with Flakes @@ -51,12 +51,12 @@ jobs: tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - run: nix build - - run: nix flake check + - uses: actions/checkout@v3 + - uses: cachix/install-nix-action@v20 + with: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + - run: nix build + - run: nix flake check ``` To install Nix from any commit, go to [the corresponding installer_test action](https://github.com/NixOS/nix/runs/2219534360) and click on "Run cachix/install-nix-action@XX" step and expand the first line. diff --git a/action.yml b/action.yml index 9bd8e053..9c667a9e 100644 --- a/action.yml +++ b/action.yml @@ -1,24 +1,24 @@ -name: 'Install Nix' -description: 'Installs Nix on GitHub Actions for the supported platforms: Linux and macOS.' -author: 'Domen Kožar' +name: "Install Nix" +description: "Installs Nix on GitHub Actions for the supported platforms: Linux and macOS." +author: "Domen Kožar" inputs: extra_nix_config: - description: 'Gets appended to `/etc/nix/nix.conf` if passed.' + description: "Gets appended to `/etc/nix/nix.conf` if passed." github_access_token: - description: 'Configure nix to pull from github using the given github token.' + description: "Configure nix to pull from github using the given github token." install_url: - description: 'Installation URL that will contain a script to install Nix.' + description: "Installation URL that will contain a script to install Nix." install_options: - description: 'Additional installer flags passed to the installer script.' + description: "Additional installer flags passed to the installer script." nix_path: - description: 'Set NIX_PATH environment variable.' + description: "Set NIX_PATH environment variable." branding: - color: 'blue' - icon: 'sun' + color: "blue" + icon: "sun" runs: - using: 'composite' + using: "composite" steps: - - run : ${GITHUB_ACTION_PATH}/install-nix.sh + - run: ${GITHUB_ACTION_PATH}/install-nix.sh shell: bash env: INPUT_EXTRA_NIX_CONFIG: ${{ inputs.extra_nix_config }} From 1d2ad3576dcce592ec7c2a52d9bf3938141abdb8 Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Fri, 10 Mar 2023 08:31:12 +1300 Subject: [PATCH 4/6] feat: Enable automatically formatting code using pre-commit --- .pre-commit-config.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..fa03b8ff --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,9 @@ +# Configuration file for pre-commit (https://pre-commit.com/). +# Please run `pre-commit run --all-files` when adding or changing entries. + +repos: + - repo: https://github.com/pre-commit/mirrors-prettier + rev: 6f3cb139ef36133b6f903b97facc57b07cef57c9 # frozen: v3.0.0-alpha.6 + hooks: + - id: prettier + stages: [commit] From 1f1049f9b57363dbd34ae83fbcf7193afe4b688d Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Fri, 10 Mar 2023 08:33:46 +1300 Subject: [PATCH 5/6] feat: Check formatting as part of CI --- .github/workflows/test.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0bcd1b4c..4db40c96 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -102,3 +102,13 @@ jobs: - run: curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash - run: docker pull ghcr.io/catthehacker/ubuntu:js-20.04 - run: ./bin/act -P ubuntu-latest=ghcr.io/catthehacker/ubuntu:js-20.04 push -j simple-build + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install Nix + uses: ./ + with: + nix_path: nixpkgs=channel:nixos-22.11 + - run: nix-shell --packages cacert git nodejs pre-commit --pure --run 'pre-commit run --all-files' From fd100e8fcb66d675a481c934f050c3b7c4a00760 Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Fri, 10 Mar 2023 11:46:59 +1300 Subject: [PATCH 6/6] feat: Verify that repo paths are portable --- .pre-commit-config.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fa03b8ff..53e6fb0e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,6 +2,16 @@ # Please run `pre-commit run --all-files` when adding or changing entries. repos: + - repo: local + hooks: + - id: pathchk + name: pathchk + entry: pathchk + args: [--portability] + exclude: ^([a-zA-Z0-9._][a-zA-Z0-9._-]+)(/[a-zA-Z0-9._][a-zA-Z0-9._-]+)*$ # https://lists.gnu.org/archive/html/coreutils/2023-01/msg00006.html + language: system + stages: [commit] + - repo: https://github.com/pre-commit/mirrors-prettier rev: 6f3cb139ef36133b6f903b97facc57b07cef57c9 # frozen: v3.0.0-alpha.6 hooks: