diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..dc6f915 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "docker" # See documentation for possible values + directory: "/docker" # Location of package manifests + schedule: + interval: "daily" diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..fb2197c --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,57 @@ +name: Build and Publish Docker Image + +on: + push: + branches: [main] + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '0 9 * * 6' + + workflow_dispatch: + +jobs: + build-and-push-docker-image: + name: Build Docker image and push to repositories + runs-on: ubuntu-latest + steps: + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Force permissions fix. + run: sudo apt-get update && sudo apt-get install dos2unix -y && cd docker && bash dos2unix.sh + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Login to Github Packages + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Get current date + id: date + run: echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV + + - name: Build image and push to Docker Hub and GitHub Container Registry + uses: docker/build-push-action@v5 + with: + context: ./docker + push: true + tags: | + aterfax/pbs-client:latest + ghcr.io/aterfax/pbs-client:latest + aterfax/pbs-client:${{ env.DATE }} + ghcr.io/aterfax/pbs-client:${{ env.DATE }} + + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml new file mode 100644 index 0000000..abcce48 --- /dev/null +++ b/.github/workflows/docker-test.yml @@ -0,0 +1,36 @@ +name: Build Docker Image + +on: + # run it during pull request + pull_request: + + workflow_dispatch: + +jobs: + # define job to build and publish docker image + build-docker-image: + name: Build Docker image only + # run only when code is compiling and tests are passing + runs-on: ubuntu-latest + + # steps to perform in job + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Force permissions fix. + run: sudo apt-get update && sudo apt-get install dos2unix -y && cd docker && bash dos2unix.sh + + # setup Docker build action + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Build image only + uses: docker/build-push-action@v5 + with: + context: ./docker + push: false + + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }}