diff --git a/.github/workflows/verify-build-should-fail.yml b/.github/workflows/verify-build-should-fail.yml new file mode 100644 index 0000000..99525f4 --- /dev/null +++ b/.github/workflows/verify-build-should-fail.yml @@ -0,0 +1,78 @@ +# This workflow will perform a test whenever there +# is some change in code done to ensure that the changes +# are not buggy and we are getting the desired output. +name: Test Build +on: [push, pull_request, workflow_dispatch] +env: + TEST_REPO: spring-petclinic + IMAGE_NAME: spring-petclinic + +jobs: + build: + name: Build image using Buildah + runs-on: ubuntu-latest + steps: + + # Fetch name of the Forked Repository with Branch + # if workflow is triggered from pull request + - name: Fetch PR head repo and branch name + if: github.event_name == 'pull_request' + run: | + HEAD_REPO_NAME=$(jq -r '.pull_request.head.repo.full_name' "$GITHUB_EVENT_PATH") + echo "PR head repo: $HEAD_REPO_NAME" + echo "repo=$HEAD_REPO_NAME" >> $GITHUB_ENV + echo "branch=$GITHUB_HEAD_REF" >> $GITHUB_ENV + + # Extract repository name with branch + - name: Fetch Repository name with branch + if: github.event_name != 'pull_request' + shell: bash + run: | + echo "repo=$GITHUB_REPOSITORY" >> $GITHUB_ENV + echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV + + # Checkout buildah action github repository + - name: Checkout Buildah action + uses: actions/checkout@v2 + with: + repository: ${{ env.repo }} + ref: ${{ env.branch }} + path: "buildah-build" + + # Checkout spring-petclinic github repository + - name: Checkout spring-petclinic project + uses: actions/checkout@v2 + with: + repository: "spring-projects/spring-petclinic" + path: ${{ env.TEST_REPO }} + + # Setup java. + - name: Setup Java + uses: actions/setup-java@v1 + with: + java-version: 11 + + # Run maven to build the project + - name: Maven + working-directory: ${{ env.TEST_REPO }} + run: | + mvn package -ntp -B + + # Build image using Buildah action + - name: Build Image + uses: ./buildah-build/ + with: + image: ${{ env.IMAGE_NAME }} + base-image: something-invalid-idk + # To avoid hardcoding a particular version of the binary. + content: | + ./spring-petclinic/target/spring-petclinic-*.BUILD-SNAPSHOT.jar + entrypoint: | + java + -jar + spring-petclinic-*.BUILD-SNAPSHOT.jar + port: 8080 + + # Check if image is build + - name: Check images created + run: buildah images | grep '${{ env.IMAGE_NAME }}'