# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json --- name: cd on: push: tags: - 'v*.*.*' jobs: release-dockerimage: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Extract dyndnsd version from tag name run: | echo "DYNDNSD_VERSION=${GITHUB_REF#refs/*/v}" >> "$GITHUB_ENV" - name: Wait for dyndnsd ${{ env.DYNDNSD_VERSION }} gem to be available run: | set +e for retry in $(seq 1 5); do echo "Checking if dyndnsd $DYNDNSD_VERSION gem is retrievable from rubygems.org (try #$retry)..." sudo gem install dyndnsd -v "$DYNDNSD_VERSION" # shellcheck disable=SC2181 if [ $? -eq 0 ]; then exit 0 fi sleep 60 done exit 1 # https://github.com/marketplace/actions/build-and-push-docker-images - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: cmur2 password: ${{ secrets.DOCKER_TOKEN }} - name: Build and push Docker image for dyndnsd ${{ env.DYNDNSD_VERSION }} uses: docker/build-push-action@v4 with: context: docker build-args: | DYNDNSD_VERSION=${{ env.DYNDNSD_VERSION }} push: true tags: cmur2/dyndnsd:v${{ env.DYNDNSD_VERSION }}