diff --git a/.gitea/workflows/build-and-push.yml b/.gitea/workflows/build-and-push.yml index 3479f90..5de813d 100644 --- a/.gitea/workflows/build-and-push.yml +++ b/.gitea/workflows/build-and-push.yml @@ -123,140 +123,6 @@ jobs: docker build "${build_args[@]}" . - - name: Push image - shell: bash - run: | - set -euo pipefail - while IFS= read -r tag; do - [ -n "$tag" ] || continue - docker push "$tag" - done <<'EOF' - ${{ steps.meta.outputs.tags }} - EOFname: Build and Push Container - -on: - push: - branches: - - master - - main - tags: - - v* - workflow_dispatch: - -jobs: - build-and-push: - runs-on: ubuntu-latest - env: - REGISTRY: gitea.wayfinderak.com - IMAGE_NAME: gitea.wayfinderak.com/wayfinderak/goff - container: - options: --dns 172.16.30.10 - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Go and Docker CLI if needed - shell: bash - run: | - set -euo pipefail - - need_apt=0 - need_apk=0 - if ! command -v go >/dev/null 2>&1 || ! command -v docker >/dev/null 2>&1; then - if command -v apt-get >/dev/null 2>&1; then - need_apt=1 - elif command -v apk >/dev/null 2>&1; then - need_apk=1 - else - echo "No supported package manager found" >&2 - exit 1 - fi - fi - - if [ "$need_apt" -eq 1 ]; then - apt-get update - if ! command -v go >/dev/null 2>&1; then - apt-get install -y golang-go - fi - if ! command -v docker >/dev/null 2>&1; then - apt-get install -y docker.io curl dnsutils iputils-ping - fi - fi - - if [ "$need_apk" -eq 1 ]; then - if ! command -v go >/dev/null 2>&1; then - apk add --no-cache go - fi - if ! command -v docker >/dev/null 2>&1; then - apk add --no-cache docker-cli curl bind-tools iputils - fi - fi - - go version - docker version - - - name: Run tests - run: go test ./... - - - name: Log in to Gitea Container Registry - shell: bash - run: | - set -euo pipefail - for attempt in 1 2 3; do - echo "docker login attempt $attempt" - if echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login "$REGISTRY" -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin; then - exit 0 - fi - sleep 5 - done - echo "docker login failed after 3 attempts" >&2 - exit 1 - - - name: Determine image tags - id: meta - shell: bash - env: - REF: ${{ gitea.ref }} - REF_NAME: ${{ gitea.ref_name }} - SHA: ${{ gitea.sha }} - run: | - set -euo pipefail - tags=() - - if [[ "$REF" == refs/tags/* ]]; then - version="$REF_NAME" - tags+=("$IMAGE_NAME:$version") - tags+=("$IMAGE_NAME:latest") - else - branch="$REF_NAME" - branch_safe="$(echo "$branch" | tr '/_' '--')" - sha_short="$(echo "$SHA" | cut -c1-7)" - tags+=("$IMAGE_NAME:$branch_safe") - tags+=("$IMAGE_NAME:$branch_safe-$sha_short") - if [[ "$branch" == "main" ]]; then - tags+=("$IMAGE_NAME:latest") - fi - fi - - printf 'tags<> "$GITHUB_OUTPUT" - printf '%s\n' "${tags[@]}" >> "$GITHUB_OUTPUT" - printf 'EOF\n' >> "$GITHUB_OUTPUT" - - - name: Build image - shell: bash - run: | - set -euo pipefail - mapfile -t tags <<'EOF' - ${{ steps.meta.outputs.tags }} - EOF - - build_args=() - for tag in "${tags[@]}"; do - build_args+=(--tag "$tag") - done - - docker build "${build_args[@]}" . - - name: Push image shell: bash run: |