From b3629a8498a81a75425d4043d1312023e853423e Mon Sep 17 00:00:00 2001 From: Dmitri Smirnov Date: Tue, 23 Apr 2024 20:30:51 -0400 Subject: [PATCH] fix: restore build-pull-request workflow --- .github/workflows/build-pull-request.yml | 54 ++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/build-pull-request.yml diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml new file mode 100644 index 0000000..fe6cc38 --- /dev/null +++ b/.github/workflows/build-pull-request.yml @@ -0,0 +1,54 @@ +name: Build Pull Request + +on: + pull_request: + branches: + - '*' + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + build-container: + runs-on: ubuntu-latest + steps: + - name: Define environment variables + run: | + echo REPOSITORY=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV + echo TAG=$(echo "PR-${{ github.event.pull_request.number }}") >> $GITHUB_ENV + + - name: Set up docker + uses: docker/setup-buildx-action@v3 + + - name: Build container + uses: docker/build-push-action@v5 + with: + tags: ghcr.io/${{ env.REPOSITORY }}:${{ env.TAG }} + outputs: type=docker,dest=/tmp/esi-opticks-${{ env.TAG }}.tar + + - name: Save built image for test jobs + uses: actions/upload-artifact@v4 + with: + name: esi-opticks-${{ env.TAG }} + path: /tmp/esi-opticks-${{ env.TAG }}.tar + + test-container: + runs-on: ubuntu-latest + needs: build-container + steps: + - name: Define environment variables + run: | + echo REPOSITORY=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV + echo TAG=$(echo "PR-${{ github.event.pull_request.number }}") >> $GITHUB_ENV + + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: esi-opticks-${{ env.TAG }} + path: /tmp + + - name: Run tests + run: | + docker load --input /tmp/esi-opticks-${{ env.TAG }}.tar + docker run ghcr.io/${{ env.REPOSITORY }}:${{ env.TAG }} bash -l -c opticks-info