diff --git a/.github/workflows/s390x.yml b/.github/workflows/s390x.yml new file mode 100644 index 0000000..7fd3f42 --- /dev/null +++ b/.github/workflows/s390x.yml @@ -0,0 +1,160 @@ +name: Test package on s390x + +on: + push: + branches: + - main + - s390x + workflow_dispatch: + +env: + PKG: 'rhdf5' + +jobs: + install-depdendencies: + name: Install package dependencies + runs-on: ubuntu-22.04 + + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: s390x + + - name: Make R library + run: mkdir -p ${RUNNER_TEMP}/R-lib + + - name: Cache Dependencies + id: cache-deps + uses: actions/cache@v4 + with: + path: ${{ runner.temp }}/R-lib + key: R_lib-s390x-${{ hashFiles('**/DESCRIPTION') }} + restore-keys: | + R_lib-s390x-${{ hashFiles('**/DESCRIPTION') }} + R_lib-s390x- + + - name: Run the build process with Docker + uses: addnab/docker-run-action@v3 + with: + image: s390x/r-base:latest + options: | + --platform linux/arm64 + -v ${{ runner.temp }}/R-lib:/R-lib + -v ${{ github.workspace }}/../:/build + --env R_LIBS_USER=/R-lib + --env PKG=${{ env.PKG }} + run: | + uname -a + echo "options(Ncpus=4L, timeout = 300)" >> ~/.Rprofile + Rscript -e "library(remotes)" -e "dev_package_deps('/build/${PKG}', dependencies = TRUE) |> update(upgrade = 'always')" + + check-s390x: + name: Test package on s390x + runs-on: ubuntu-22.04 + needs: install-depdendencies + steps: + + - name: checkout + uses: actions/checkout@v4 + + - name: Make R library + run: mkdir -p ${RUNNER_TEMP}/R-lib + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: s390x + + - name: Cache Dependencies + id: cache-deps + uses: actions/cache@v4 + with: + path: ${{ runner.temp }}/R-lib + key: R_lib-s390x-${{ hashFiles('**/DESCRIPTION') }} + restore-keys: | + R_lib-s390x-${{ hashFiles('**/DESCRIPTION') }} + R_lib-s390x- + + - name: R CMD INSTALL + uses: addnab/docker-run-action@v3 + with: + image: s390x/r-base:latest + options: | + --platform linux/s390x + -v ${{ runner.temp }}/R-lib:/R-lib + -v ${{ github.workspace }}/../:/build + --env R_LIBS_USER=/R-lib + --env PKG=${{ env.PKG }} + --workdir /build + run: | + ls -l + R CMD INSTALL ${PKG} &> ${PKG}.install-out.txt + ls -l + shell: bash + + - name: R CMD build + uses: addnab/docker-run-action@v3 + with: + image: s390x/r-base:latest + options: | + --platform linux/s390x + -v ${{ runner.temp }}/R-lib:/R-lib + -v ${{ github.workspace }}/../:/build + --env R_LIBS_USER=/R-lib + --env PKG=${{ env.PKG }} + --workdir /build + run: | + ls -l "${R_LIBS_USER}" + R CMD build --keep-empty-dirs --no-resave-data ${PKG} + ls -l + + - name: R CMD check + uses: addnab/docker-run-action@v3 + with: + image: s390x/r-base:latest4 + options: | + --platform linux/s390x + -v ${{ runner.temp }}/R-lib:/R-lib + -v ${{ github.workspace }}/../:/build + --env R_LIBS_USER=/R-lib + --env PKG=${{ env.PKG }} + --workdir /build + run: | + ls -l + R CMD check --install=check:${PKG}.install-out.txt --library="${R_LIBS_USER}" --no-vignettes --timings ${PKG}*.tar.gz + cat ${PKG}.install-out.txt + ls -l + + - name: Build Package Binary + uses: addnab/docker-run-action@v3 + with: + image: s390x/r-base:latest + options: | + --platform linux/s390x + -v ${{ runner.temp }}/R-lib:/R-lib + -v ${{ github.workspace }}/../:/build + --env R_LIBS_USER=/R-lib + --env PKG=${{ env.PKG }} + --workdir /build + run: | + mkdir -p ${PKG}.buildbin-libdir + R CMD INSTALL --build --library=${PKG}.buildbin-libdir ${PKG}*.tar.gz + ls -l + + - uses: actions/upload-artifact@v4 + if: always() + with: + name: my-artifact + path: | + ~/**/*.tar.gz + ~/**/*.install-out.txt + ~/**/*.Rcheck + if-no-files-found: warn + + + +