mirror of https://github.com/go-gitea/gitea
fully replace drone with actions (#27556)
this builds binaries and docker images for tagspull/27544/head^2
parent
4378f9dfff
commit
dc7cf7a984
@ -1,428 +0,0 @@ |
||||
--- |
||||
kind: pipeline |
||||
name: release-version |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
workspace: |
||||
base: /source |
||||
path: / |
||||
|
||||
trigger: |
||||
event: |
||||
- tag |
||||
|
||||
volumes: |
||||
- name: deps |
||||
temp: {} |
||||
|
||||
steps: |
||||
- name: fetch-tags |
||||
image: docker:git |
||||
pull: always |
||||
commands: |
||||
- git fetch --tags --force |
||||
|
||||
- name: deps-frontend |
||||
image: node:20 |
||||
pull: always |
||||
commands: |
||||
- make deps-frontend |
||||
|
||||
- name: deps-backend |
||||
image: gitea/test_env:linux-1.20-amd64 |
||||
pull: always |
||||
commands: |
||||
- make deps-backend |
||||
volumes: |
||||
- name: deps |
||||
path: /go |
||||
|
||||
- name: static |
||||
image: techknowlogick/xgo:go-1.21.x |
||||
pull: always |
||||
commands: |
||||
- apt-get update && apt-get -qqy install ca-certificates curl gnupg |
||||
- mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg |
||||
- echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" > /etc/apt/sources.list.d/nodesource.list |
||||
- apt-get update && apt-get -qqy install nodejs |
||||
- export PATH=$PATH:$GOPATH/bin |
||||
- make release |
||||
environment: |
||||
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not |
||||
TAGS: bindata sqlite sqlite_unlock_notify |
||||
DEBIAN_FRONTEND: noninteractive |
||||
depends_on: [fetch-tags] |
||||
volumes: |
||||
- name: deps |
||||
path: /go |
||||
|
||||
- name: gpg-sign |
||||
image: plugins/gpgsign:1 |
||||
pull: always |
||||
settings: |
||||
detach_sign: true |
||||
excludes: |
||||
- "dist/release/*.sha256" |
||||
files: |
||||
- "dist/release/*" |
||||
environment: |
||||
GPGSIGN_KEY: |
||||
from_secret: gpgsign_key |
||||
GPGSIGN_PASSPHRASE: |
||||
from_secret: gpgsign_passphrase |
||||
depends_on: [static] |
||||
|
||||
- name: release-tag |
||||
image: woodpeckerci/plugin-s3:latest |
||||
pull: always |
||||
settings: |
||||
acl: |
||||
from_secret: aws_s3_acl |
||||
region: |
||||
from_secret: aws_s3_region |
||||
bucket: |
||||
from_secret: aws_s3_bucket |
||||
endpoint: |
||||
from_secret: aws_s3_endpoint |
||||
path_style: |
||||
from_secret: aws_s3_path_style |
||||
source: "dist/release/*" |
||||
strip_prefix: dist/release/ |
||||
target: "/gitea/${DRONE_TAG##v}" |
||||
environment: |
||||
AWS_ACCESS_KEY_ID: |
||||
from_secret: aws_access_key_id |
||||
AWS_SECRET_ACCESS_KEY: |
||||
from_secret: aws_secret_access_key |
||||
depends_on: [gpg-sign] |
||||
|
||||
- name: github |
||||
image: plugins/github-release:latest |
||||
pull: always |
||||
settings: |
||||
files: |
||||
- "dist/release/*" |
||||
file_exists: overwrite |
||||
environment: |
||||
GITHUB_TOKEN: |
||||
from_secret: github_token |
||||
depends_on: [gpg-sign] |
||||
|
||||
--- |
||||
kind: pipeline |
||||
type: docker |
||||
name: docker-linux-amd64-release-version |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
trigger: |
||||
ref: |
||||
include: |
||||
- "refs/tags/**" |
||||
exclude: |
||||
- "refs/tags/**-rc*" |
||||
paths: |
||||
exclude: |
||||
- "docs/**" |
||||
|
||||
steps: |
||||
- name: fetch-tags |
||||
image: docker:git |
||||
pull: always |
||||
commands: |
||||
- git fetch --tags --force |
||||
|
||||
- name: publish |
||||
image: plugins/docker:latest |
||||
pull: always |
||||
settings: |
||||
auto_tag: true |
||||
auto_tag_suffix: linux-amd64 |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
|
||||
- name: publish-rootless |
||||
image: plugins/docker:latest |
||||
settings: |
||||
dockerfile: Dockerfile.rootless |
||||
auto_tag: true |
||||
auto_tag_suffix: linux-amd64-rootless |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
--- |
||||
|
||||
kind: pipeline |
||||
type: docker |
||||
name: docker-linux-amd64-release-candidate-version |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
trigger: |
||||
ref: |
||||
- "refs/tags/**-rc*" |
||||
paths: |
||||
exclude: |
||||
- "docs/**" |
||||
|
||||
steps: |
||||
- name: fetch-tags |
||||
image: docker:git |
||||
pull: always |
||||
commands: |
||||
- git fetch --tags --force |
||||
|
||||
- name: publish |
||||
image: plugins/docker:latest |
||||
pull: always |
||||
settings: |
||||
tags: ${DRONE_TAG##v}-linux-amd64 |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
|
||||
- name: publish-rootless |
||||
image: plugins/docker:latest |
||||
settings: |
||||
dockerfile: Dockerfile.rootless |
||||
tags: ${DRONE_TAG##v}-linux-amd64-rootless |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
|
||||
--- |
||||
kind: pipeline |
||||
type: docker |
||||
name: docker-linux-arm64-release-version |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: arm64 |
||||
|
||||
trigger: |
||||
ref: |
||||
include: |
||||
- "refs/tags/**" |
||||
exclude: |
||||
- "refs/tags/**-rc*" |
||||
paths: |
||||
exclude: |
||||
- "docs/**" |
||||
|
||||
steps: |
||||
- name: fetch-tags |
||||
image: docker:git |
||||
pull: always |
||||
commands: |
||||
- git fetch --tags --force |
||||
|
||||
- name: publish |
||||
image: plugins/docker:latest |
||||
pull: always |
||||
settings: |
||||
auto_tag: true |
||||
auto_tag_suffix: linux-arm64 |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
|
||||
- name: publish-rootless |
||||
image: plugins/docker:latest |
||||
settings: |
||||
dockerfile: Dockerfile.rootless |
||||
auto_tag: true |
||||
auto_tag_suffix: linux-arm64-rootless |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
|
||||
--- |
||||
kind: pipeline |
||||
type: docker |
||||
name: docker-linux-arm64-release-candidate-version |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: arm64 |
||||
|
||||
trigger: |
||||
ref: |
||||
- "refs/tags/**-rc*" |
||||
paths: |
||||
exclude: |
||||
- "docs/**" |
||||
|
||||
steps: |
||||
- name: fetch-tags |
||||
image: docker:git |
||||
pull: always |
||||
commands: |
||||
- git fetch --tags --force |
||||
|
||||
- name: publish |
||||
image: plugins/docker:latest |
||||
pull: always |
||||
settings: |
||||
tags: ${DRONE_TAG##v}-linux-arm64 |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
|
||||
- name: publish-rootless |
||||
image: plugins/docker:latest |
||||
settings: |
||||
dockerfile: Dockerfile.rootless |
||||
tags: ${DRONE_TAG##v}-linux-arm64-rootless |
||||
repo: gitea/gitea |
||||
build_args: |
||||
- GOPROXY=https://goproxy.io |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
environment: |
||||
PLUGIN_MIRROR: |
||||
from_secret: plugin_mirror |
||||
DOCKER_BUILDKIT: 1 |
||||
when: |
||||
event: |
||||
exclude: |
||||
- pull_request |
||||
|
||||
--- |
||||
kind: pipeline |
||||
type: docker |
||||
name: docker-manifest-version |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
steps: |
||||
- name: manifest-rootless |
||||
image: plugins/manifest |
||||
pull: always |
||||
settings: |
||||
auto_tag: true |
||||
ignore_missing: true |
||||
spec: docker/manifest.rootless.tmpl |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
|
||||
- name: manifest |
||||
image: plugins/manifest |
||||
settings: |
||||
auto_tag: true |
||||
ignore_missing: true |
||||
spec: docker/manifest.tmpl |
||||
password: |
||||
from_secret: docker_password |
||||
username: |
||||
from_secret: docker_username |
||||
|
||||
trigger: |
||||
ref: |
||||
- "refs/tags/**" |
||||
paths: |
||||
exclude: |
||||
- "docs/**" |
||||
|
||||
depends_on: |
||||
- docker-linux-amd64-release-version |
||||
- docker-linux-amd64-release-candidate-version |
||||
- docker-linux-arm64-release-version |
||||
- docker-linux-arm64-release-candidate-version |
@ -0,0 +1,125 @@ |
||||
name: release-tag-rc |
||||
|
||||
on: |
||||
push: |
||||
tags: |
||||
- 'v1*-rc*' |
||||
|
||||
concurrency: |
||||
group: ${{ github.workflow }}-${{ github.ref }} |
||||
cancel-in-progress: false |
||||
|
||||
jobs: |
||||
binary: |
||||
runs-on: nscloud |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions |
||||
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567 |
||||
- run: git fetch --unshallow --quiet --tags --force |
||||
- uses: actions/setup-go@v4 |
||||
with: |
||||
go-version: "~1.21" |
||||
check-latest: true |
||||
- uses: actions/setup-node@v3 |
||||
with: |
||||
node-version: 20 |
||||
- run: make deps-frontend deps-backend |
||||
# xgo build |
||||
- run: make release |
||||
env: |
||||
TAGS: bindata sqlite sqlite_unlock_notify |
||||
- name: import gpg key |
||||
id: import_gpg |
||||
uses: crazy-max/ghaction-import-gpg@v5 |
||||
with: |
||||
gpg_private_key: ${{ secrets.GPGSIGN_KEY }} |
||||
passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }} |
||||
- name: sign binaries |
||||
run: | |
||||
for f in dist/release/*; do |
||||
echo '${{ secrets.GPGSIGN_PASSPHRASE }}' | gpg --pinentry-mode loopback --passphrase-fd 0 --batch --yes --detach-sign -u ${{ steps.import_gpg.outputs.fingerprint }} --output "$f.asc" "$f" |
||||
done |
||||
# clean branch name to get the folder name in S3 |
||||
- name: Get cleaned branch name |
||||
id: clean_name |
||||
run: | |
||||
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\///' -e 's/release\/v//') |
||||
echo "Cleaned name is ${REF_NAME}" |
||||
echo "branch=${REF_NAME}" >> "$GITHUB_OUTPUT" |
||||
- name: configure aws |
||||
uses: aws-actions/configure-aws-credentials@v4 |
||||
with: |
||||
aws-region: ${{ secrets.AWS_REGION }} |
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} |
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
||||
- name: upload binaries to s3 |
||||
run: | |
||||
aws s3 sync dist/release s3://${{ secrets.AWS_S3_BUCKET }}/gitea/${{ steps.clean_name.outputs.branch }} --no-progress |
||||
- name: create github release |
||||
run: | |
||||
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --draft --notes-from-tag dist/release/* |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
||||
docker-rootful: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions |
||||
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567 |
||||
- run: git fetch --unshallow --quiet --tags --force |
||||
- uses: docker/setup-qemu-action@v2 |
||||
- uses: docker/setup-buildx-action@v2 |
||||
- uses: docker/metadata-action@v5 |
||||
id: meta |
||||
with: |
||||
images: gitea/gitea |
||||
# 1.2.3-rc0 |
||||
tags: | |
||||
type=semver,pattern={{version}} |
||||
- name: Login to Docker Hub |
||||
uses: docker/login-action@v2 |
||||
with: |
||||
username: ${{ secrets.DOCKERHUB_USERNAME }} |
||||
password: ${{ secrets.DOCKERHUB_TOKEN }} |
||||
- name: build rootful docker image |
||||
uses: docker/build-push-action@v4 |
||||
with: |
||||
context: . |
||||
platforms: linux/amd64,linux/arm64 |
||||
push: true |
||||
tags: ${{ steps.meta.outputs.tags }} |
||||
labels: ${{ steps.meta.outputs.labels }} |
||||
docker-rootless: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions |
||||
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567 |
||||
- run: git fetch --unshallow --quiet --tags --force |
||||
- uses: docker/setup-qemu-action@v2 |
||||
- uses: docker/setup-buildx-action@v2 |
||||
- uses: docker/metadata-action@v5 |
||||
id: meta |
||||
with: |
||||
images: gitea/gitea |
||||
# each tag below will have the suffix of -rootless |
||||
flavor: | |
||||
suffix=-rootless |
||||
# 1.2.3-rc0 |
||||
tags: | |
||||
type=semver,pattern={{version}} |
||||
- name: Login to Docker Hub |
||||
uses: docker/login-action@v2 |
||||
with: |
||||
username: ${{ secrets.DOCKERHUB_USERNAME }} |
||||
password: ${{ secrets.DOCKERHUB_TOKEN }} |
||||
- name: build rootless docker image |
||||
uses: docker/build-push-action@v4 |
||||
with: |
||||
context: . |
||||
platforms: linux/amd64,linux/arm64 |
||||
push: true |
||||
file: Dockerfile.rootless |
||||
tags: ${{ steps.meta.outputs.tags }} |
||||
labels: ${{ steps.meta.outputs.labels }} |
@ -0,0 +1,141 @@ |
||||
name: release-tag-version |
||||
|
||||
on: |
||||
push: |
||||
tags: |
||||
- 'v1.*' |
||||
- '!v1*-rc*' |
||||
- '!v1*-dev' |
||||
|
||||
concurrency: |
||||
group: ${{ github.workflow }}-${{ github.ref }} |
||||
cancel-in-progress: false |
||||
|
||||
jobs: |
||||
binary: |
||||
runs-on: nscloud |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions |
||||
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567 |
||||
- run: git fetch --unshallow --quiet --tags --force |
||||
- uses: actions/setup-go@v4 |
||||
with: |
||||
go-version: "~1.21" |
||||
check-latest: true |
||||
- uses: actions/setup-node@v3 |
||||
with: |
||||
node-version: 20 |
||||
- run: make deps-frontend deps-backend |
||||
# xgo build |
||||
- run: make release |
||||
env: |
||||
TAGS: bindata sqlite sqlite_unlock_notify |
||||
- name: import gpg key |
||||
id: import_gpg |
||||
uses: crazy-max/ghaction-import-gpg@v5 |
||||
with: |
||||
gpg_private_key: ${{ secrets.GPGSIGN_KEY }} |
||||
passphrase: ${{ secrets.GPGSIGN_PASSPHRASE }} |
||||
- name: sign binaries |
||||
run: | |
||||
for f in dist/release/*; do |
||||
echo '${{ secrets.GPGSIGN_PASSPHRASE }}' | gpg --pinentry-mode loopback --passphrase-fd 0 --batch --yes --detach-sign -u ${{ steps.import_gpg.outputs.fingerprint }} --output "$f.asc" "$f" |
||||
done |
||||
# clean branch name to get the folder name in S3 |
||||
- name: Get cleaned branch name |
||||
id: clean_name |
||||
run: | |
||||
REF_NAME=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///' -e 's/refs\/tags\///' -e 's/release\/v//') |
||||
echo "Cleaned name is ${REF_NAME}" |
||||
echo "branch=${REF_NAME}" >> "$GITHUB_OUTPUT" |
||||
- name: configure aws |
||||
uses: aws-actions/configure-aws-credentials@v4 |
||||
with: |
||||
aws-region: ${{ secrets.AWS_REGION }} |
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} |
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} |
||||
- name: upload binaries to s3 |
||||
run: | |
||||
aws s3 sync dist/release s3://${{ secrets.AWS_S3_BUCKET }}/gitea/${{ steps.clean_name.outputs.branch }} --no-progress |
||||
- name: create github release |
||||
run: | |
||||
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --draft --notes-from-tag dist/release/* |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
||||
docker-rootful: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions |
||||
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567 |
||||
- run: git fetch --unshallow --quiet --tags --force |
||||
- uses: docker/setup-qemu-action@v2 |
||||
- uses: docker/setup-buildx-action@v2 |
||||
- uses: docker/metadata-action@v5 |
||||
id: meta |
||||
with: |
||||
images: gitea/gitea |
||||
# this will generate tags in the following format: |
||||
# latest |
||||
# 1 |
||||
# 1.2 |
||||
# 1.2.3 |
||||
tags: | |
||||
type=raw,value=latest |
||||
type=semver,pattern={{major}} |
||||
type=semver,pattern={{major}}.{{minor}} |
||||
type=semver,pattern={{version}} |
||||
- name: Login to Docker Hub |
||||
uses: docker/login-action@v2 |
||||
with: |
||||
username: ${{ secrets.DOCKERHUB_USERNAME }} |
||||
password: ${{ secrets.DOCKERHUB_TOKEN }} |
||||
- name: build rootful docker image |
||||
uses: docker/build-push-action@v4 |
||||
with: |
||||
context: . |
||||
platforms: linux/amd64,linux/arm64 |
||||
push: true |
||||
tags: ${{ steps.meta.outputs.tags }} |
||||
labels: ${{ steps.meta.outputs.labels }} |
||||
docker-rootless: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- uses: actions/checkout@v4 |
||||
# fetch all commits instead of only the last as some branches are long lived and could have many between versions |
||||
# fetch all tags to ensure that "git describe" reports expected Gitea version, eg. v1.21.0-dev-1-g1234567 |
||||
- run: git fetch --unshallow --quiet --tags --force |
||||
- uses: docker/setup-qemu-action@v2 |
||||
- uses: docker/setup-buildx-action@v2 |
||||
- uses: docker/metadata-action@v5 |
||||
id: meta |
||||
with: |
||||
images: gitea/gitea |
||||
# each tag below will have the suffix of -rootless |
||||
flavor: | |
||||
suffix=-rootless |
||||
# this will generate tags in the following format (with -rootless suffix added): |
||||
# latest |
||||
# 1 |
||||
# 1.2 |
||||
# 1.2.3 |
||||
tags: | |
||||
type=raw,value=latest |
||||
type=semver,pattern={{major}} |
||||
type=semver,pattern={{major}}.{{minor}} |
||||
type=semver,pattern={{version}} |
||||
- name: Login to Docker Hub |
||||
uses: docker/login-action@v2 |
||||
with: |
||||
username: ${{ secrets.DOCKERHUB_USERNAME }} |
||||
password: ${{ secrets.DOCKERHUB_TOKEN }} |
||||
- name: build rootless docker image |
||||
uses: docker/build-push-action@v4 |
||||
with: |
||||
context: . |
||||
platforms: linux/amd64,linux/arm64 |
||||
push: true |
||||
file: Dockerfile.rootless |
||||
tags: ${{ steps.meta.outputs.tags }} |
||||
labels: ${{ steps.meta.outputs.labels }} |
Loading…
Reference in new issue