|
| 1 | +name: Image push per Github Tag |
| 2 | + |
| 3 | +# This GitHub action activates whenever a new tag is created on the repo under "opendatahub-io" |
| 4 | +# and creates a copy of the image of the associated commit hash with the |
| 5 | +# appropriate tag name. |
| 6 | + |
| 7 | +run-name: Creating new tag in quay based on pushed tag in Github. |
| 8 | +on: |
| 9 | + push: |
| 10 | + tags: |
| 11 | + - '*' |
| 12 | + workflow_dispatch: |
| 13 | +env: |
| 14 | + IMAGE_SERVER: ds-pipelines-api-server |
| 15 | + IMAGE_UI: ds-pipelines-frontend |
| 16 | + IMAGE_CACHE: ds-pipelines-cacheserver |
| 17 | + IMAGE_PA: ds-pipelines-persistenceagent |
| 18 | + IMAGE_SWF: ds-pipelines-scheduledworkflow |
| 19 | + IMAGE_VC: ds-pipelines-viewercontroller |
| 20 | + IMAGE_ARTIFACT: ds-pipelines-artifact-manager |
| 21 | + IMAGE_MLMD_WRITER: ds-pipelines-metadata-writer |
| 22 | + IMAGE_MLMD_ENVOY: ds-pipelines-metadata-envoy |
| 23 | + IMAGE_MLMD_GRPC: ds-pipelines-metadata-grpc |
| 24 | +jobs: |
| 25 | + copy-tag-to-quay: |
| 26 | + runs-on: ubuntu-latest |
| 27 | + if: github.repository == 'opendatahub-io/data-science-pipelines' |
| 28 | + steps: |
| 29 | + - name: Git checkout |
| 30 | + uses: actions/checkout@v3 |
| 31 | + with: |
| 32 | + fetch-depth: '0' |
| 33 | + - name: Install skopeo |
| 34 | + shell: bash |
| 35 | + run: | |
| 36 | + sudo apt-get -y update |
| 37 | + sudo apt-get -y install skopeo |
| 38 | + - name: Login to quay.io |
| 39 | + shell: bash |
| 40 | + env: |
| 41 | + QUAY_ROBOT_USERNAME: ${{ secrets.QUAY_ROBOT_USERNAME }} |
| 42 | + QUAY_ROBOT_TOKEN: ${{ secrets.QUAY_ROBOT_TOKEN }} |
| 43 | + run: | |
| 44 | + skopeo login quay.io -u ${QUAY_ROBOT_USERNAME} -p ${QUAY_ROBOT_TOKEN} |
| 45 | + - name: Get latest tag name |
| 46 | + id: tag |
| 47 | + run: echo "tag=$(git describe --tags --abbrev=0)" >> ${GITHUB_OUTPUT} |
| 48 | + - name: Get latest tag hash |
| 49 | + id: hash |
| 50 | + run: echo "hash=$(git rev-parse --short ${{ steps.tag.outputs.tag }} )" >> ${GITHUB_OUTPUT} |
| 51 | + - name: Create new tag |
| 52 | + shell: bash |
| 53 | + env: |
| 54 | + TAG: ${{ steps.tag.outputs.tag }} |
| 55 | + HASH: ${{ steps.hash.outputs.hash }} |
| 56 | + run: | |
| 57 | + skopeo copy docker://${IMAGE_SERVER}:main-${{ env.HASH }} docker://${IMAGE_SERVER}:${{ env.TAG }} |
| 58 | + skopeo copy docker://${IMAGE_UI}:main-${{ env.HASH }} docker://${IMAGE_UI}:${{ env.TAG }} |
| 59 | + skopeo copy docker://${IMAGE_CACHE}:main-${{ env.HASH }} docker://${IMAGE_CACHE}:${{ env.TAG }} |
| 60 | + skopeo copy docker://${IMAGE_PA}:main-${{ env.HASH }} docker://${IMAGE_PA}:${{ env.TAG }} |
| 61 | + skopeo copy docker://${IMAGE_SWF}:main-${{ env.HASH }} docker://${IMAGE_SWF}:${{ env.TAG }} |
| 62 | + skopeo copy docker://${IMAGE_VC}:main-${{ env.HASH }} docker://${IMAGE_VC}:${{ env.TAG }} |
| 63 | + skopeo copy docker://${IMAGE_ARTIFACT}:main-${{ env.HASH }} docker://${IMAGE_ARTIFACT}:${{ env.TAG }} |
| 64 | + skopeo copy docker://${IMAGE_MLMD_WRITER}:main-${{ env.HASH }} docker://${IMAGE_MLMD_WRITER}:${{ env.TAG }} |
| 65 | + skopeo copy docker://${IMAGE_MLMD_ENVOY}:main-${{ env.HASH }} docker://${IMAGE_MLMD_ENVOY}:${{ env.TAG }} |
| 66 | + skopeo copy docker://${IMAGE_MLMD_GRPC}:main-${{ env.HASH }} docker://${IMAGE_MLMD_GRPC}:${{ env.TAG }} |
| 67 | + - name: Create latest tag |
| 68 | + shell: bash |
| 69 | + env: |
| 70 | + HASH: ${{ steps.hash.outputs.hash }} |
| 71 | + run: | |
| 72 | + skopeo copy docker://${IMAGE_SERVER}:main-${{ env.HASH }} docker://${IMAGE_SERVER}:latest |
| 73 | + skopeo copy docker://${IMAGE_UI}:main-${{ env.HASH }} docker://${IMAGE_UI}:latest |
| 74 | + skopeo copy docker://${IMAGE_CACHE}:main-${{ env.HASH }} docker://${IMAGE_CACHE}:latest |
| 75 | + skopeo copy docker://${IMAGE_PA}:main-${{ env.HASH }} docker://${IMAGE_PA}:latest |
| 76 | + skopeo copy docker://${IMAGE_SWF}:main-${{ env.HASH }} docker://${IMAGE_SWF}:latest |
| 77 | + skopeo copy docker://${IMAGE_VC}:main-${{ env.HASH }} docker://${IMAGE_VC}:latest |
| 78 | + skopeo copy docker://${IMAGE_ARTIFACT}:main-${{ env.HASH }} docker://${IMAGE_ARTIFACT}:latest |
| 79 | + skopeo copy docker://${IMAGE_MLMD_WRITER}:main-${{ env.HASH }} docker://${IMAGE_MLMD_WRITER}:latest |
| 80 | + skopeo copy docker://${IMAGE_MLMD_ENVOY}:main-${{ env.HASH }} docker://${IMAGE_MLMD_ENVOY}:latest |
| 81 | + skopeo copy docker://${IMAGE_MLMD_GRPC}:main-${{ env.HASH }} docker://${IMAGE_MLMD_GRPC}:latest |
0 commit comments