Files
go-receipt-tracker/.github/workflows/CI.yml
Alex Savin 26dec18f85
Some checks failed
Build and Push Docker Image / testing (1.24.x, ubuntu-latest) (push) Successful in 1m6s
GHA Testing / gha-testing (push) Successful in 2s
Build and Push Docker Image / build-and-push (push) Has been cancelled
Update .github/workflows/CI.yml
2025-04-29 13:44:55 -04:00

126 lines
4.4 KiB
YAML

name: Build and Push Docker Image
on:
push:
branches:
- develop
paths-ignore:
- 'README.md'
# - '.github/**'
pull_request:
branches:
- develop
paths-ignore:
- 'README.md'
# - '.github/**'
workflow_dispatch:
branches:
- develop
paths-ignore:
- 'README.md'
# - '.github/**'
jobs:
testing:
runs-on: ubuntu-latest
strategy:
matrix:
go-version:
- 1.24.x
os:
- ubuntu-latest
steps:
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- uses: actions/checkout@v4
- run: |
go get -u .
go test ./.
build-and-push:
runs-on: ubuntu-latest
needs: [ testing ]
steps:
- name: Extract Version
id: version_step
run: |
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT
echo REPO_VERSION=${GITHUB_REF_NAME#v} >> $GITHUB_OUTPUT
echo RELEASE_DATE=$(date --rfc-3339=date) >> ${GITHUB_ENV}
echo COMMIT_SHA_SHORT=$(echo $GITHUB_SHA | cut -c1-10) >> $GITHUB_OUTPUT
# echo "##[set-output name=version;]VERSION=${GITHUB_REF#$"refs/tags/v"}"
# echo "##[set-output name=version_tag;]$GITHUB_REPOSITORY:${GITHUB_REF#$"refs/tags/v"}"
# echo "##[set-output name=latest_tag;]$GITHUB_REPOSITORY:latest"
# - name: Print Version
# run: |
# echo ${{steps.version_step.outputs.version_tag}}
# echo ${{steps.version_step.outputs.latest_tag}}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3
with:
platforms: |
linux/amd64
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: docker.savin.nyc
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# - name: PrepareReg Names
# id: read-docker-image-identifiers
# run: |
# echo VERSION_TAG=$(echo ${{ steps.version_step.outputs.version_tag }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
# echo LASTEST_TAG=$(echo ${{ steps.version_step.outputs.latest_tag }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
- name: Build and Push
id: docker_build
uses: docker/build-push-action@v6
with:
# context: .
# file: ./Dockerfile
platforms: |
linux/amd64
push: true
tags: |
docker.savin.nyc/${{ github.event.repository.name }}:nightly
docker.savin.nyc/${{ github.event.repository.name }}:${{ steps.vars.outputs.COMMIT_SHA_SHORT }}
# ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }}
# latest
# build-args: |
# docker.savin.nyc/${{ github.event.repository.name }}:latest
# build-args: |
# ${{steps.version_step.outputs.version}}
# docker.savin.nyc/${{ github.event.repository.name }}:${{ env.RELEASE_VERSION }}
# tags: |
# ${{env.VERSION_TAG}}
# ${{env.LASTEST_TAG}}
- name: Auto Execute a Workflow
run: |
curl -X 'POST' \
'http://10.10.11.26:8090/api/v1/repos/${{ github.repository_owner }}/${{ github.repository.name }}/actions/workflows/CD.yml/dispatches' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic ${{ echo -n "secrets.SECRET_USERNAME:secrets.SECRET_PASSWORD" | base64 }}' \
-H 'Authorization: token ${{ secrets.GHA_TOKEN }}' \
-d '{"ref":"${{ github.ref }}","inputs":{"Version":"${{ steps.vars.outputs.COMMIT_SHA_SHORT }}","Env":"${{ github.ref_name}}"}}'
shell: bash
# - name: Auto Deploy (Dev)
## if: ${{ contains(github.ref, 'develop') and env.AUTO_DEPLOY_DEV == 'true' }}
# id: auto-deploy-dev
# uses: https://git.savin.nyc/gh-actions/auto-exec-workflow@v1
# with:
# GITEA_TOKEN: ${{ secrets.GHA_TOKEN }}
# Version: ${{ steps.version.output.updated-version }}
- name: Output Summary
id: output-summary
shell: bash
run: |
echo "CI pipeline has been compiled for ${{ github.repository }} with a new version ${{ steps.vars.outputs.COMMIT_SHORT_SHA }}" >> $GITHUB_STEP_SUMMARY