parent
8b736f9eff
commit
9fc5def826
@ -1,12 +0,0 @@
|
||||
name: Auto approve dependabot PRs
|
||||
|
||||
on: pull_request_target
|
||||
|
||||
jobs:
|
||||
auto-approve:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: write
|
||||
if: github.actor == 'dependabot[bot]'
|
||||
steps:
|
||||
- uses: hmarr/auto-approve-action@v3
|
||||
@ -1,23 +0,0 @@
|
||||
name: Greetings
|
||||
|
||||
on:
|
||||
# Runs in the context of the target (containrrr/watchtower) repository, and as such has access to GITHUB_TOKEN
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
greeting:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/first-interaction@v1
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-message: >
|
||||
Hi there! 👋🏼
|
||||
As you're new to this repo, we'd like to suggest that you read our [code of conduct](https://github.com/containrrr/.github/blob/master/CODE_OF_CONDUCT.md)
|
||||
as well as our [contribution guidelines](https://github.com/containrrr/watchtower/blob/master/CONTRIBUTING.md).
|
||||
Thanks a bunch for opening your first issue! 🙏
|
||||
pr-message: >
|
||||
Congratulations on opening your first pull request! We'll get back to you as soon as possible. In the meantime, please make sure you've updated the documentation to reflect your changes and have added test automation as needed. Thanks! 🙏🏼
|
||||
@ -1,37 +0,0 @@
|
||||
name: Publish Docs
|
||||
|
||||
on:
|
||||
workflow_dispatch: { }
|
||||
workflow_run:
|
||||
workflows: [ "Release (Production)" ]
|
||||
branches: [ main ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
jobs:
|
||||
publish-docs:
|
||||
name: Publish Docs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- name: Build tplprev
|
||||
run: scripts/build-tplprev.sh
|
||||
- name: Setup python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
cache: 'pip'
|
||||
cache-dependency-path: |
|
||||
docs-requirements.txt
|
||||
- name: Install mkdocs
|
||||
run: |
|
||||
pip install -r docs-requirements.txt
|
||||
- name: Generate docs
|
||||
run: mkdocs gh-deploy --strict
|
||||
@ -1,70 +0,0 @@
|
||||
name: Pull Request
|
||||
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- uses: dominikh/staticcheck-action@ba605356b4b29a60e87ab9404b712f3461e566dc #v1.3.0
|
||||
with:
|
||||
version: "2023.1.6"
|
||||
install-go: "false" # StaticCheck uses go v1.17 which does not support `any`
|
||||
test:
|
||||
name: Test
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
go-version:
|
||||
- 1.20.x
|
||||
platform:
|
||||
- macos-latest
|
||||
- windows-latest
|
||||
- ubuntu-latest
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- name: Run tests
|
||||
run: |
|
||||
go test -v -coverprofile coverage.out -covermode atomic ./...
|
||||
- name: Publish coverage
|
||||
uses: codecov/codecov-action@v3
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- name: Build
|
||||
uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 #v3
|
||||
with:
|
||||
version: v0.155.0
|
||||
args: --snapshot --skip-publish --debug
|
||||
@ -1,59 +0,0 @@
|
||||
name: Push to main
|
||||
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- name: Build
|
||||
run: ./build.sh
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- name: Test
|
||||
run: go test -v -coverprofile coverage.out -covermode atomic ./...
|
||||
- name: Publish coverage
|
||||
uses: codecov/codecov-action@v3
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
publish:
|
||||
needs:
|
||||
- build
|
||||
- test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Publish to Docker Hub
|
||||
uses: jerray/publish-docker-action@87d84711629b0dc9f6bb127b568413cc92a2088e #master@2022-10-14
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
file: dockerfiles/Dockerfile.self-contained
|
||||
repository: containrrr/watchtower
|
||||
tags: latest-dev
|
||||
- name: Publish to GHCR
|
||||
uses: jerray/publish-docker-action@87d84711629b0dc9f6bb127b568413cc92a2088e #master@2022-10-14
|
||||
with:
|
||||
username: ${{ secrets.BOT_USERNAME }}
|
||||
password: ${{ secrets.BOT_GHCR_PAT }}
|
||||
file: dockerfiles/Dockerfile.self-contained
|
||||
registry: ghcr.io
|
||||
repository: containrrr/watchtower
|
||||
tags: latest-dev
|
||||
@ -1,197 +0,0 @@
|
||||
name: Release (Production)
|
||||
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- '**/v[0-9]+.[0-9]+.[0-9]+'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- uses: dominikh/staticcheck-action@ba605356b4b29a60e87ab9404b712f3461e566dc #v1.3.0
|
||||
with:
|
||||
version: "2022.1.1"
|
||||
install-go: "false" # StaticCheck uses go v1.17 which does not support `any`
|
||||
|
||||
test:
|
||||
name: Test
|
||||
strategy:
|
||||
matrix:
|
||||
go-version:
|
||||
- 1.20.x
|
||||
platform:
|
||||
- ubuntu-latest
|
||||
- macos-latest
|
||||
- windows-latest
|
||||
runs-on: ${{ matrix.platform }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- name: Run tests
|
||||
run: |
|
||||
go test ./... -coverprofile coverage.out
|
||||
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- test
|
||||
- lint
|
||||
env:
|
||||
CGO_ENABLED: 0
|
||||
TAG: ${{ github.ref_name }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: 1.20.x
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc #v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc #v2
|
||||
with:
|
||||
username: ${{ secrets.BOT_USERNAME }}
|
||||
password: ${{ secrets.BOT_GHCR_PAT }}
|
||||
registry: ghcr.io
|
||||
- name: Build
|
||||
uses: goreleaser/goreleaser-action@7ec5c2b0c6cdda6e8bbb49444bc797dd33d74dd8 #v3
|
||||
with:
|
||||
version: v0.155.0
|
||||
args: --debug
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Enable experimental docker features
|
||||
run: |
|
||||
mkdir -p ~/.docker/ && \
|
||||
echo '{"experimental": "enabled"}' > ~/.docker/config.json
|
||||
- name: Create manifest for version
|
||||
run: |
|
||||
export DH_TAG=$(git tag --points-at HEAD | sed 's/^v*//')
|
||||
docker manifest create \
|
||||
containrrr/watchtower:$DH_TAG \
|
||||
containrrr/watchtower:amd64-$DH_TAG \
|
||||
containrrr/watchtower:i386-$DH_TAG \
|
||||
containrrr/watchtower:armhf-$DH_TAG \
|
||||
containrrr/watchtower:arm64v8-$DH_TAG
|
||||
docker manifest create \
|
||||
ghcr.io/containrrr/watchtower:$DH_TAG \
|
||||
ghcr.io/containrrr/watchtower:amd64-$DH_TAG \
|
||||
ghcr.io/containrrr/watchtower:i386-$DH_TAG \
|
||||
ghcr.io/containrrr/watchtower:armhf-$DH_TAG \
|
||||
ghcr.io/containrrr/watchtower:arm64v8-$DH_TAG
|
||||
- name: Annotate manifest for version
|
||||
run: |
|
||||
for REPO in '' ghcr.io/ ; do
|
||||
|
||||
docker manifest annotate \
|
||||
${REPO}containrrr/watchtower:$(echo $TAG | sed 's/^v*//') \
|
||||
${REPO}containrrr/watchtower:i386-$(echo $TAG | sed 's/^v*//') \
|
||||
--os linux \
|
||||
--arch 386
|
||||
|
||||
docker manifest annotate \
|
||||
${REPO}containrrr/watchtower:$(echo $TAG | sed 's/^v*//') \
|
||||
${REPO}containrrr/watchtower:armhf-$(echo $TAG | sed 's/^v*//') \
|
||||
--os linux \
|
||||
--arch arm
|
||||
|
||||
docker manifest annotate \
|
||||
${REPO}containrrr/watchtower:$(echo $TAG | sed 's/^v*//') \
|
||||
${REPO}containrrr/watchtower:arm64v8-$(echo $TAG | sed 's/^v*//') \
|
||||
--os linux \
|
||||
--arch arm64 \
|
||||
--variant v8
|
||||
|
||||
done
|
||||
- name: Create manifest for latest
|
||||
run: |
|
||||
docker manifest create \
|
||||
containrrr/watchtower:latest \
|
||||
containrrr/watchtower:amd64-latest \
|
||||
containrrr/watchtower:i386-latest \
|
||||
containrrr/watchtower:armhf-latest \
|
||||
containrrr/watchtower:arm64v8-latest
|
||||
docker manifest create \
|
||||
ghcr.io/containrrr/watchtower:latest \
|
||||
ghcr.io/containrrr/watchtower:amd64-latest \
|
||||
ghcr.io/containrrr/watchtower:i386-latest \
|
||||
ghcr.io/containrrr/watchtower:armhf-latest \
|
||||
ghcr.io/containrrr/watchtower:arm64v8-latest
|
||||
- name: Annotate manifest for latest
|
||||
run: |
|
||||
for REPO in '' ghcr.io/ ; do
|
||||
|
||||
docker manifest annotate \
|
||||
${REPO}containrrr/watchtower:latest \
|
||||
${REPO}containrrr/watchtower:i386-latest \
|
||||
--os linux \
|
||||
--arch 386
|
||||
|
||||
docker manifest annotate \
|
||||
${REPO}containrrr/watchtower:latest \
|
||||
${REPO}containrrr/watchtower:armhf-latest \
|
||||
--os linux \
|
||||
--arch arm
|
||||
|
||||
docker manifest annotate \
|
||||
${REPO}containrrr/watchtower:latest \
|
||||
${REPO}containrrr/watchtower:arm64v8-latest \
|
||||
--os linux \
|
||||
--arch arm64 \
|
||||
--variant v8
|
||||
|
||||
done
|
||||
- name: Push manifests to Dockerhub
|
||||
env:
|
||||
DOCKER_USER: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
DOCKER_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
run: |
|
||||
docker login -u $DOCKER_USER -p $DOCKER_TOKEN && \
|
||||
docker manifest push containrrr/watchtower:$(echo $TAG | sed 's/^v*//') && \
|
||||
docker manifest push containrrr/watchtower:latest
|
||||
- name: Push manifests to GitHub Container Registry
|
||||
env:
|
||||
DOCKER_USER: ${{ secrets.BOT_USERNAME }}
|
||||
DOCKER_TOKEN: ${{ secrets.BOT_GHCR_PAT }}
|
||||
run: |
|
||||
docker login -u $DOCKER_USER -p $DOCKER_TOKEN ghcr.io && \
|
||||
docker manifest push ghcr.io/containrrr/watchtower:$(echo $TAG | sed 's/^v*//') && \
|
||||
docker manifest push ghcr.io/containrrr/watchtower:latest
|
||||
|
||||
renew-docs:
|
||||
name: Refresh pkg.go.dev
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Pull new module version
|
||||
uses: andrewslotin/go-proxy-pull-action@50fea06a976087614babb9508e5c528b464f4645 #master@2022-10-14
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue