diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml new file mode 100644 index 00000000..51bf0ed3 --- /dev/null +++ b/.github/workflows/docker-build.yml @@ -0,0 +1,54 @@ +name: Build/Push Docker Image to ghcr + +on: + release: + types: [published] + workflow_dispatch: + inputs: + docker_tag: + description: 'Docker tag to use' + required: true + default: 'latest' + +permissions: + contents: read + packages: write + +jobs: + build_and_push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + driver: docker + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set Docker image tag + id: vars + run: | + if [ "${{ github.event_name }}" == "release" ]; then + echo "TAG=${{ github.event.release.tag_name }}" >> $GITHUB_ENV + elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then + echo "TAG=${{ github.event.inputs.docker_tag }}" >> $GITHUB_ENV + else + echo "In case of manual trigger, docker tag must be present. Workflow failed." + exit 1 + fi + + - name: Build and push Docker image + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile + push: true + tags: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}:${{ env.TAG }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 882b3b49..02ba0518 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## Added +- added dockerfile - `SnosJob` implementation and e2e - Telemetry tracing and metrics. - e2e flow test