From a0737857286e4dccd7cbfba03b8f6bbebf837ec2 Mon Sep 17 00:00:00 2001 From: Ben Mangold <1518509+benmangold@users.noreply.github.com> Date: Fri, 17 Sep 2021 22:04:55 -0400 Subject: [PATCH] Rebuild all Git Tags on a cron and Basic K8s service deployment (#1) --- .github/workflows/cron.yaml | 55 +++++++++++++++++++++++++++++++++++++ manifest.yaml | 35 +++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 .github/workflows/cron.yaml create mode 100644 manifest.yaml diff --git a/.github/workflows/cron.yaml b/.github/workflows/cron.yaml new file mode 100644 index 0000000..34a604f --- /dev/null +++ b/.github/workflows/cron.yaml @@ -0,0 +1,55 @@ +name: cron + +on: + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '0 * * * *' + +jobs: + + provide-tags: + + runs-on: ubuntu-latest + + steps: + # checkout repo with all tags + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + # set matrix output to all git tags listed in a JSON-parsable array + - id: set-matrix + run: echo "::set-output name=matrix::$( jq -cRs 'split("\n")[:-1]' <<< $(git tag -l) )" + + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + + + rebuild-tags: + + needs: provide-tags + + runs-on: ubuntu-latest + + env: + DOCKER_HUB_ACCOUNT: bmngld + + strategy: + matrix: + tag: ${{fromJson(needs.provide-tags.outputs.matrix)}} + + steps: + + - uses: actions/checkout@v2 + with: + ref: ${{ matrix.tag }} + + - run: make ci + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + + - run: docker tag test $DOCKER_HUB_ACCOUNT/${{ github.event.repository.name }}:${{ matrix.tag }} + + - run: echo ${{ secrets.DOCKER_HUB_TOKEN }} | docker login --username $DOCKER_HUB_ACCOUNT --password-stdin + + - run: docker push $DOCKER_HUB_ACCOUNT/${{ github.event.repository.name }}:${{ matrix.tag }} diff --git a/manifest.yaml b/manifest.yaml new file mode 100644 index 0000000..3a42361 --- /dev/null +++ b/manifest.yaml @@ -0,0 +1,35 @@ +--- +kind: Service +apiVersion: v1 +metadata: + name: container-image-template +spec: + type: LoadBalancer + selector: + app: container-image-template + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 3000 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: container-image-template +spec: + replicas: 2 + selector: + matchLabels: + app: container-image-template + template: + metadata: + labels: + app: container-image-template + spec: + containers: + - name: node + image: docker.io/bmngld/container-image-template:v0.0.1 + ports: + - containerPort: 3000 + protocol: TCP