-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
57 additions
and
95 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,100 +6,61 @@ on: | |
|
||
jobs: | ||
lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Set up Ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: 3.2 | ||
bundler-cache: true | ||
- name: Linting | ||
run: bundle exec standardrb --no-fix | ||
|
||
test: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
- name: Set up Ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: '3.2' | ||
bundler-cache: true | ||
- name: test | ||
run: bundle exec rspec spec | ||
|
||
integration_test: | ||
runs-on: pub-hk-ubuntu-22.04-xlarge | ||
strategy: | ||
matrix: | ||
stack: ["heroku-20", "heroku-22"] | ||
version: ["3.1.4"] | ||
runs-on: ubuntu-24.04 | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Output CHANGELOG | ||
run: bin/print_changelog "${{matrix.version}}" | ||
- name: Build Docker image | ||
run: bin/activate_docker "${{matrix.stack}}" | ||
- name: Build and package Ruby runtime | ||
run: bin/build_ruby "${{matrix.stack}}" "${{matrix.version}}" | ||
- name: Verify ruby executable and output rubygems version | ||
run: bin/print_summary "${{matrix.stack}}" "${{matrix.version}}" | tee $GITHUB_STEP_SUMMARY | ||
- name: Update Rust toolchain | ||
# Most of the time this will be a no-op, since GitHub releases new images every week | ||
# which include the latest stable release of Rust, Rustup, Clippy and rustfmt. | ||
run: rustup update | ||
- name: Rust Cache | ||
uses: Swatinem/[email protected] | ||
- name: Clippy | ||
# Using --all-targets so tests are checked and --deny to fail on warnings. | ||
# Not using --locked here and below since Cargo.lock is in .gitignore. | ||
run: cargo clippy --all-targets --all-features -- --deny warnings | ||
- name: rustfmt | ||
run: cargo fmt -- --check | ||
- name: Check docs | ||
# Using RUSTDOCFLAGS until `cargo doc --check` is stabilised: | ||
# https://github.com/rust-lang/cargo/issues/10025 | ||
run: RUSTDOCFLAGS="-D warnings" cargo doc --all-features --document-private-items --no-deps | ||
|
||
integration_test-heroku-24-amd: | ||
runs-on: pub-hk-ubuntu-22.04-xlarge | ||
strategy: | ||
matrix: | ||
stack: ["heroku-24"] | ||
version: ["3.2.3"] | ||
unit-test: | ||
runs-on: ubuntu-24.04 | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Output CHANGELOG | ||
run: bin/print_changelog "${{matrix.version}}" | ||
- name: Build Docker image | ||
run: bin/activate_docker "${{matrix.stack}}" | ||
- name: Build and package Ruby runtime | ||
run: bin/build_ruby "${{matrix.stack}}" "${{matrix.version}}" | ||
- name: Verify ruby executable and output rubygems version | ||
run: bin/print_summary "${{matrix.stack}}" "${{matrix.version}}" amd64 | tee $GITHUB_STEP_SUMMARY | ||
- name: Update Rust toolchain | ||
run: rustup update | ||
- name: Rust Cache | ||
uses: Swatinem/[email protected] | ||
- name: Run unit tests | ||
run: cargo test --all-features | ||
|
||
integration_test-heroku-24-arm: | ||
runs-on: pub-hk-ubuntu-22.04-arm-large | ||
integration_test: | ||
runs-on: ${{ matrix.arch == 'arm64' && 'pub-hk-ubuntu-22.04-arm-medium' || 'ubuntu-latest' }} | ||
strategy: | ||
matrix: | ||
stack: ["heroku-24"] | ||
base_image: ["heroku-20", "heroku-22", "heroku-24"] | ||
version: ["3.2.3"] | ||
arch: ["arm64", "amd64"] | ||
exclude: | ||
- base_image: "heroku-20" | ||
arch: "arm64" | ||
- builder: "heroku-22" | ||
arch: "arm64" | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
# Docker (and other tools) are not present on the early-access runners. | ||
# We must install them manually: https://github.com/github-early-access/arm-runners-beta | ||
- name: Install docker | ||
run: | | ||
bin/setup_docker_ci | ||
sudo usermod -aG docker $USER | ||
sudo apt-get install acl | ||
sudo setfacl --modify user:$USER:rw /var/run/docker.sock | ||
# AWS CLI (and other tools) are not present on the early-access runners. | ||
# We must install them manually: https://github.com/github-early-access/arm-runners-beta | ||
- name: Install AWS CLI | ||
run: | # https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html | ||
sudo apt-get install -y unzip | ||
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" | ||
unzip awscliv2.zip | ||
sudo ./aws/install | ||
- name: Verify AWS installed correctly | ||
run: aws --version | ||
- name: Update Rust toolchain | ||
run: rustup update | ||
- name: Rust Cache | ||
uses: Swatinem/[email protected] | ||
- name: Output CHANGELOG | ||
run: bin/print_changelog "${{matrix.version}}" | ||
- name: Build Docker image | ||
run: bin/activate_docker "${{matrix.stack}}" | ||
- name: Build and package Ruby runtime | ||
run: bin/build_ruby "${{matrix.stack}}" "${{matrix.version}}" | ||
- name: Verify ruby executable and output rubygems version | ||
run: bin/print_summary "${{matrix.stack}}" "${{matrix.version}}" arm64 | tee $GITHUB_STEP_SUMMARY | ||
- name: Build Ruby | ||
run: cargo run --bin build_ruby -- --version ${{matrix.version}} --base-image ${{matrix.base_image}} --arch ${{matrix.arch}} | ||
- name: Check Ruby | ||
run: cargo run --bin check_ruby -- --version ${{matrix.version}} --base-image ${{matrix.base_image}} --arch ${{matrix.arch}} |
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