diff --git a/.cirrus.yml b/.cirrus.yml deleted file mode 100644 index 0f001281..00000000 --- a/.cirrus.yml +++ /dev/null @@ -1,49 +0,0 @@ - -INSTALL_GH_CLI: &INSTALL_GH_CLI - install_gh_cli_script: | - curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ - && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ - && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ - && apt update \ - && apt install gh -y - -RELEASE: &RELEASE - release_script: ./script/ci/release.sh - env: - GITHUB_TOKEN: ENCRYPTED[80f01174768fa2065635588baac761b8d7079ea3e06f4af861d3c5c6ada0a8fe93a19e45d33a64fccc24f94f6398593d] - GH_PRE_RELEASE_UPLOAD: true - -PREBUILD_AND_TEST: &PREBUILD_AND_TEST - prebuild_script: NODE_VERSION=20 script/ci/prebuild.sh - <<: *RELEASE - test_20_script: NODE_VERSION=20 script/ci/build-and-test.sh && script/ci/clean.sh - test_18_script: NODE_VERSION=18 script/ci/build-and-test.sh && script/ci/clean.sh - test_16_script: NODE_VERSION=16 script/ci/build-and-test.sh && script/ci/clean.sh - -linux_arm_task: - only_if: $CIRRUS_CHANGE_TITLE !=~ 'chore\(release\):.*' - env: - SET_NVM: "true" - arm_container: - image: node:20-slim - cirrus_setup_script: chmod +x script/**/* && chmod +x script/** - setup_script: apt update --yes && apt install --yes curl python3 make build-essential g++ unzip zip git - pre_req_script: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.39.3/install.sh | bash - <<: *INSTALL_GH_CLI - <<: *PREBUILD_AND_TEST - artifacts: - path: prebuilds/*.tar.gz - -macos_arm_task: - only_if: $CIRRUS_CHANGE_TITLE !=~ 'chore\(release\):.*' - macos_instance: - image: ghcr.io/cirruslabs/macos-ventura-base:latest - env: - SET_NVM: "true" - cirrus_setup_script: chmod +x script/**/* && chmod +x script/** - dry_run_check_script: | - npx --yes commit-and-tag-version --dry-run && git remote -v - pre_req_script: brew install nvm - <<: *PREBUILD_AND_TEST - artifacts: - path: prebuilds/*.tar.gz \ No newline at end of file diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 55a9f3c1..0877cfbf 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -11,7 +11,7 @@ jobs: create_pre_release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - run: GH_CREATE_PRE_RELEASE=true ./script/ci/release.sh @@ -29,18 +29,18 @@ jobs: fail-fast: false matrix: node-version: [20] - os: [macos-latest,ubuntu-latest,windows-latest] + os: [macos-14,macos-12,ubuntu-latest,windows-latest] env: NODE_VERSION: ${{ matrix.node-version }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} @@ -49,6 +49,16 @@ jobs: - run: ./script/ci/prebuild.sh + - name: Set up QEMU + if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + if: runner.os == 'Linux' + uses: docker/setup-buildx-action@v3 + - if: runner.os == 'Linux' + name: prebuild arm64 + run: docker run -v $PWD:/home --platform linux/arm64 --rm node:20 bin/bash -c 'cd /home && /home/script/ci/prebuild.sh' + - name: Upload prebuild for ${{ runner.os }}-${{ runner.arch }} uses: actions/upload-artifact@v3 with: @@ -69,13 +79,13 @@ jobs: fail-fast: false matrix: node-version: [16,18,20] - os: [macos-latest,ubuntu-latest,windows-latest] + os: [macos-14, macos-12, ubuntu-latest,windows-latest] env: NODE_VERSION: ${{ matrix.node-version }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -83,7 +93,7 @@ jobs: uses: actions/download-artifact@v3 - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} @@ -91,6 +101,19 @@ jobs: run: echo "ONLY_DOWNLOAD_PACT_FOR_WINDOWS=true" >> $GITHUB_ENV - run: ./script/ci/unpack-and-test.sh + + # Linux aarch64 tests are skipped as QEMU fails when executing the ruby binaries + # Related comment: https://github.com/phusion/passenger/issues/2288#issuecomment-1387625121 + # - name: Set up QEMU + # if: runner.os == 'Linux' + # uses: docker/setup-qemu-action@v3 + # - name: Set up Docker Buildx + # if: runner.os == 'Linux' + # uses: docker/setup-buildx-action@v3 + # - if: runner.os == 'Linux' + # name: test arm64 + # run: docker run -v $PWD:/home --platform linux/arm64 --rm node:20 bin/bash -c 'cd /home && /home/script/ci/unpack-and-test.sh' + release_dry_run: runs-on: ubuntu-latest needs: [ create_pre_release, prebuild ] @@ -100,12 +123,12 @@ jobs: NODE_VERSION: 20 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} registry-url: 'https://registry.npmjs.org' diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index db3175f3..7fdd594c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,12 +14,12 @@ jobs: NODE_VERSION: 20 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} registry-url: 'https://registry.npmjs.org'