diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000000..6b18287537 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,44 @@ +# Builds image and stores in ghcr.io then sends webhook to deploy new image +name: Podman Image CI + +on: + push: + branches: [ "cjcolvar-patch-4" ] + +env: + GHCR_USER: ${{ github.actor }} + GHCR_PASSWORD: ${{ github.token }} + GHCR_IMAGE_REGISTRY: ghcr.io/avalonmediasystem + DOCKERHUB_IMAGE_REGISTRY: docker.io/avalonmediasystem + DOCKERHUB_USER: ${{ secrets.dockerhub_user }} + DOCKERHUB_PASSWORD: ${{ secrets.dockerhub_password }} + IMAGE_TAG: ${{ fromJSON('{"refs/heads/main":"production","refs/heads/develop":"develop","refs/heads/staging":"staging","refs/heads/sandbox":"sandbox","refs/heads/cjcolvar-patch-4":"develop"}')[github.ref] }} + BRANCH: ${{ fromJSON('{"refs/heads/main":"main","refs/heads/develop":"develop","refs/heads/staging":"staging","refs/heads/sandbox":"sandbox","refs/heads/cjcolvar-patch-4":"develop"}')[github.ref] }} + BUILD_TARGET: ${{ fromJSON('{"refs/heads/main":"prod","refs/heads/develop":"dev","refs/heads/staging":"prod","refs/heads/sandbox":"prod","refs/heads/cjcolvar-patch-4":"dev"}')[github.ref] }} + +jobs: + + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Determine develop image tags + if: ${{ env.IMAGE_TAG == 'develop' }} + id: determine_dockerhub_tags + run: | + AVALON_VERSION=`script/avalon_image_tags.rb -t` + echo "AVALON_VERSION=${AVALON_VERSION}" >> "$GITHUB_OUTPUT" + AVALON_TAGS=`script/avalon_image_tags.rb --branch ${BRANCH} -a ${AVALON_VERSION}-dev` + echo "tags=${AVALON_TAGS}" >> "$GITHUB_OUTPUT" + - name: Develop Push To Dockerhub + if: ${{ env.IMAGE_TAG == 'develop' }} + uses: redhat-actions/push-to-registry@v2 + with: + image: ${{ steps.build_image.outputs.image }} + tags: ${{ steps.determine_dockerhub_tags.outputs.tags }} + registry: ${{ env.DOCKERHUB_IMAGE_REGISTRY }} + username: ${{ env.DOCKERHUB_USER }} + password: ${{ env.DOCKERHUB_PASSWORD }} + extra-args: | + --disable-content-trust