Skip to content

Bootstrap OnDemand 4.0 #844

Bootstrap OnDemand 4.0

Bootstrap OnDemand 4.0 #844

Workflow file for this run

name: E2E tests
on:
push:
branches: [main]
pull_request:
schedule:
- cron: '0 4 * * *'
jobs:
buildbox:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
dist:
- el8
- el9
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
- debian-12
- amzn2023
arch:
- x86_64
- aarch64
- ppc64le
exclude:
- dist: amzn2023
arch: ppc64le
- dist: ubuntu-20.04
arch: ppc64le
- dist: ubuntu-22.04
arch: ppc64le
runs-on: ${{ matrix.os }}
name: Buildbox tests
steps:
- name: Checkout ${{ github.sha }}
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Setup Ruby using Bundler
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0.4'
bundler: '2.1.4'
bundler-cache: true
- name: Pull the build box
run: bundle exec rake ood_packaging:buildbox:pull[${{ matrix.dist }},${{ matrix.arch }}] || exit 0
- name: Build the build box
run: bundle exec rake ood_packaging:buildbox:build[${{ matrix.dist }},${{ matrix.arch }}]
- name: Export Docker image
run: bundle exec rake ood_packaging:buildbox:save[${{ matrix.dist }},${{ matrix.arch }},/tmp/ood_packaging-${{ matrix.dist }}-${{ matrix.arch }}.tar.gz]
- name: Upload Docker image
uses: actions/upload-artifact@v4
with:
name: image-${{ matrix.dist }}-${{ matrix.arch }}
path: /tmp/ood_packaging-${{ matrix.dist }}-${{ matrix.arch }}.tar.gz
package-el:
needs: [buildbox]
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
dist:
- el8
- el9
- amzn2023
arch:
- x86_64
- aarch64
- ppc64le
package:
- ondemand-release
- ondemand-release-latest
- ondemand-runtime
- passenger
- cjose
- mod_auth_openidc
- ondemand_exporter
- ondemand-compute
- python-websockify
- turbovnc
include:
- dist: amzn2023
arch: x86_64
os: ubuntu-22.04
package: scl-utils
- dist: amzn2023
os: ubuntu-22.04
arch: aarch64
package: scl-utils
exclude:
- dist: el9
package: cjose
- dist: el9
package: mod_auth_openidc
- arch: aarch64
package: ondemand-release
- arch: aarch64
package: ondemand-release-latest
- arch: aarch64
package: ondemand-compute
- arch: ppc64le
package: ondemand-release
- arch: ppc64le
package: ondemand-release-latest
- arch: ppc64le
package: ondemand-compute
# Times out because very slow
- dist: amzn2023
arch: aarch64
package: passenger
# Times out because very slow
- dist: amzn2023
arch: aarch64
package: turbovnc
- dist: amzn2023
arch: ppc64le
runs-on: ${{ matrix.os }}
name: Package test package=${{ matrix.package }} dist=${{ matrix.dist }} arch=${{ matrix.arch }}
steps:
- name: Checkout ${{ github.sha }}
uses: actions/checkout@v4
- name: Setup Ruby ${{ matrix.ruby }} using Bundler ${{ matrix.bundler }}
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0.4'
bundler: '2.1.4'
bundler-cache: true
- name: Download image
uses: actions/download-artifact@v4
with:
name: image-${{ matrix.dist }}-${{ matrix.arch }}
path: /tmp
- name: Load image
run: docker load --input /tmp/ood_packaging-${{ matrix.dist }}-${{ matrix.arch }}.tar.gz
- name: Build package
if: matrix.arch == 'x86_64'
run: bundle exec rake ood_packaging:package:${{ matrix.package }}[${{ matrix.dist }},${{ matrix.arch }}]
env:
OOD_PACKAGING_DEBUG: 'true'
- name: arch distro
if: ${{ matrix.arch != 'x86_64' && github.event_name == 'schedule' }}
run: |
DISTRO=$(echo "${{ matrix.os }}" | sed 's|\-||g')
echo "DISTRO=${DISTRO}" >> $GITHUB_ENV
- name: Build package
if: ${{ matrix.arch != 'x86_64' && github.event_name == 'schedule' }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.arch }}
distro: ${{ env.DISTRO }}
githubToken: ${{ github.token }}
install: |
apt update -y
apt install -y ruby-bundler ruby-dev git apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update -y
apt install -y docker-ce
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
bundle install
bundle exec rake ood_packaging:package:${{ matrix.package }}[${{ matrix.dist }},${{ matrix.arch }}]
env: |
OOD_PACKAGING_DEBUG: 'true'
package-deb:
needs: [buildbox]
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
dist:
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
- debian-12
arch:
- x86_64
- aarch64
package:
- ondemand-release
- ondemand-release-latest
- passenger
exclude:
- arch: aarch64
package: ondemand-release
- arch: aarch64
package: ondemand-release-latest
runs-on: ${{ matrix.os }}
name: Package test package=${{ matrix.package }} dist=${{ matrix.dist }} arch=${{ matrix.arch }}
steps:
- name: Checkout ${{ github.sha }}
uses: actions/checkout@v4
- name: Setup Ruby ${{ matrix.ruby }} using Bundler ${{ matrix.bundler }}
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0.4'
bundler: '2.1.4'
bundler-cache: true
- name: Download image
uses: actions/download-artifact@v4
with:
name: image-${{ matrix.dist }}-${{ matrix.arch }}
path: /tmp
- name: Load image
run: docker load --input /tmp/ood_packaging-${{ matrix.dist }}-${{ matrix.arch }}.tar.gz
- name: Build package
if: matrix.arch == 'x86_64'
run: bundle exec rake ood_packaging:package:${{ matrix.package }}[${{ matrix.dist }},${{ matrix.arch }}]
env:
OOD_PACKAGING_DEBUG: 'true'
- name: arch distro
if: ${{ matrix.arch != 'x86_64' && github.event_name == 'schedule' }}
run: |
DISTRO=$(echo "${{ matrix.os }}" | sed 's|\-||g')
echo "DISTRO=${DISTRO}" >> $GITHUB_ENV
- name: Build package
if: ${{ matrix.arch != 'x86_64' && github.event_name == 'schedule' }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.arch }}
distro: ${{ env.DISTRO }}
githubToken: ${{ github.token }}
install: |
apt update -y
apt install -y ruby-bundler ruby-dev git apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update -y
apt install -y docker-ce
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
bundle install
bundle exec rake ood_packaging:package:${{ matrix.package }}[${{ matrix.dist }},${{ matrix.arch }}]
env: |
OOD_PACKAGING_DEBUG: 'true'
package-external:
needs: [buildbox]
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
dist:
- el8
- el9
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
- debian-12
- amzn2023
arch:
- x86_64
- aarch64
- ppc64le
package:
- ondemand
include:
- dist: el8
arch: x86_64
os: ubuntu-22.04
package: bc_osc_rstudio_server
- dist: el9
arch: x86_64
os: ubuntu-22.04
package: bc_osc_rstudio_server
exclude:
- dist: amzn2023
arch: aarch64
- dist: amzn2023
arch: ppc64le
- dist: ubuntu-20.04
arch: ppc64le
- dist: ubuntu-22.04
arch: ppc64le
runs-on: ${{ matrix.os }}
name: Package ${{ matrix.package }} dist=${{ matrix.dist }} arch=${{ matrix.arch }}
steps:
- name: Checkout ${{ github.sha }}
uses: actions/checkout@v4
- name: Setup Ruby using Bundler
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0.4'
bundler: '2.1.4'
bundler-cache: true
- name: Download image
uses: actions/download-artifact@v4
with:
name: image-${{ matrix.dist }}-${{ matrix.arch }}
path: /tmp
- name: Load image
run: docker load --input /tmp/ood_packaging-${{ matrix.dist }}-${{ matrix.arch }}.tar.gz
- name: Clone ${{ matrix.package }}
run: |
mkdir -p ./tmp
git clone https://github.com/OSC/${{ matrix.package }}.git ./tmp/${{ matrix.package }}
- name: Build ${{ matrix.package }} package
if: matrix.arch == 'x86_64'
run: ./bin/ood_packaging -w ./tmp/work -o ./tmp/output -d ${{ matrix.dist }} -a ${{ matrix.arch }} -V v3.1.0 -T --debug $(pwd)/tmp/${{ matrix.package }}
- name: arch distro
if: ${{ matrix.arch != 'x86_64' && github.event_name == 'schedule' }}
run: |
DISTRO=$(echo "${{ matrix.os }}" | sed 's|\-||g')
echo "DISTRO=${DISTRO}" >> $GITHUB_ENV
- name: Build ${{ matrix.package }} package
if: ${{ matrix.arch != 'x86_64' && github.event_name == 'schedule' }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.arch }}
distro: ${{ env.DISTRO }}
githubToken: ${{ github.token }}
install: |
apt update -y
apt install -y ruby-bundler ruby-dev git apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update -y
apt install -y docker-ce
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
bundle install
git config --global --add safe.directory $GITHUB_WORKSPACE/tmp/${{ matrix.package }}
./bin/ood_packaging -w ./tmp/work -o ./tmp/output -d ${{ matrix.dist }} -a ${{ matrix.arch }} -V v3.1.0 -T --debug $(pwd)/tmp/${{ matrix.package }}
env: |
OOD_PACKAGING_DEBUG: 'true'