Skip to content

Commit

Permalink
Merge branch 'build-image' of 'https://github.com/jjmerchante/grimoir…
Browse files Browse the repository at this point in the history
…elab'

Merges #540
Closes #540
Fixes #533
  • Loading branch information
sduenas committed Oct 11, 2022
2 parents d85e236 + 9d3b760 commit 254f238
Showing 1 changed file with 85 additions and 0 deletions.
85 changes: 85 additions & 0 deletions .github/workflows/docker-image.yml
@@ -0,0 +1,85 @@
name: Publish Docker image

on:
release:
types: [published]

env:
DOCKER_IMAGE_NAME: "grimoirelab/grimoirelab"

jobs:
package-ready:
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.8
uses: actions/setup-python@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
with:
python-version: 3.8

- name: Wait for GrimoireLab package ready in PyPI
run: |
package="grimoirelab"
version="${{github.ref_name}}"
# Format version 1.2.3-rc.1 to 1.2.3rc1
versionNum=${version%-*}
versionRC=${version#$versionNum}
versionRC=${versionRC//[-.]/}
currentVersion="${versionNum}${versionRC}"
pip install --upgrade pip
for i in $(seq 20)
do
pip index versions --pre $package > pip_versions.txt
pipVersion=$(cat pip_versions.txt | head -n 1 | cut -f2 -d '(' | cut -f1 -d ')')
echo "$currentVersion $pipVersion"
if [ "$pipVersion" = "$currentVersion" ]
then
echo "Same version"
exit 0
fi
echo "Wait for PyPI..."
sleep 10
done
echo "Latest version doesn't match after several retries"
exit 1
build-image:
runs-on: ubuntu-latest
needs: [package-ready]
environment: docker-release
steps:
- name: Install Cosign
uses: sigstore/cosign-installer@7cc35d7fdbe70d4278a0c96779081e6fac665f88 # v2.8.0

- name: Docker metadata
id: meta
uses: docker/metadata-action@69f6fc9d46f2f8bf0d5491e4aabe0bb8c6a4678a # v4.0.1
with:
images: |
${{ env.DOCKER_IMAGE_NAME }}
tags: |
type=semver,pattern={{version}}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@dc7b9719a96d48369863986a06765841d7ea23f6 # v2.0.0

- name: Login to DockerHub
uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b # v2.0.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@c84f38281176d4c9cdb1626ffafcd6b3911b5d94 # v3.1.1
with:
context: "{{defaultContext}}:docker"
push: true
tags: ${{ steps.meta.outputs.tags }}

- name: Sign image with a key
run: |
cosign sign --key env://COSIGN_PRIVATE_KEY ${TAGS}
env:
TAGS: ${{ steps.meta.outputs.tags }}
COSIGN_PRIVATE_KEY: ${{secrets.COSIGN_PRIVATE_KEY}}
COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}

0 comments on commit 254f238

Please sign in to comment.