name: Build And Publish Docker on: workflow_dispatch jobs: build: container: image: node:lts-bookworm steps: - uses: actions/checkout@v3 with: submodules: 'true' - name: Install deps run: curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh && apt update && apt install -y jq - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@master - name: Login to Self-Hosted Registry uses: docker/login-action@v3 with: registry: fung.uy username: ${{ secrets.MYCO_REGISTRY_USER }} password: ${{ secrets.MYCO_PERSONAL_ACCESS_TOKEN }} - name: Get tags from GitLab repository id: get_tags run: | TAGS=$("https://framagit.org/api/v4/projects/74246/repository/tags" | jq -r '.[].name') echo "::set-output name=tags::$TAGS" - name: Filter out RC tags and get the latest version id: filter_tags run: | TAGS="${{ steps.get_tags.outputs.tags }}" FILTERED_TAGS=$(echo "$TAGS" | grep -Ev 'RC[0-9]$' | sort -V | tail -n 1) echo "Latest tag excluding RC: $FILTERED_TAGS" echo "::set-output name=latest_tag::$FILTERED_TAGS" - name: Build and Push with Latest Tag uses: docker/build-push-action@v4 with: builder: ${{ steps.buildx.outputs.name }} context: ./aktivisda/server file: ./aktivisda/server/Dockerfile platforms: linux/amd64 push: true tags: fung.uy/mirrors/aktivisda:${{ steps.filter_tags.outputs.latest_tag }}