mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2024-11-29 09:29:15 +03:00
20535065d7
Since docker hub stopped Autobuild, we need to switch to something else. This will trigger building of images on Github Actions and pushes them to Docker Hub. You only need to add 3 secrets before you merge this PR to have it working directly. - DOCKERHUB_USERNAME : The username of the account you are going to push the builds to - DOCKERHUB_TOKEN : The token needed to login and push builds - DOCKERHUB_REPO : The repo name in the following form `index.docker.io/<user>/<repo>` So for vaultwarden that would be `index.docker.io/vaultwarden/server` Also some small modifications to the other workflows.
105 lines
3.1 KiB
YAML
105 lines
3.1 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- ".github/workflows/release.yml"
|
|
- "src/**"
|
|
- "migrations/**"
|
|
- "hooks/**"
|
|
- "docker/**"
|
|
- "Cargo.*"
|
|
- "build.rs"
|
|
- "diesel.toml"
|
|
- "rust-toolchain"
|
|
|
|
branches: # Only on paths above
|
|
- main
|
|
|
|
tags: # Always, regardless of paths above
|
|
- '*'
|
|
|
|
jobs:
|
|
# https://github.com/marketplace/actions/skip-duplicate-actions
|
|
# Some checks to determine if we need to continue with building a new docker.
|
|
# We will skip this check if we are creating a tag, because that has the same hash as a previous run already.
|
|
skip_check:
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository == 'dani-garcia/vaultwarden' }}
|
|
outputs:
|
|
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
|
steps:
|
|
- name: Skip Duplicates Actions
|
|
id: skip_check
|
|
uses: fkirc/skip-duplicate-actions@master
|
|
with:
|
|
cancel_others: 'true'
|
|
# Only run this when not creating a tag
|
|
if: ${{ startsWith(github.ref, 'refs/heads/') }}
|
|
|
|
docker-build:
|
|
runs-on: ubuntu-latest
|
|
needs: skip_check
|
|
if: ${{ needs.skip_check.outputs.should_skip != 'true' }}
|
|
env:
|
|
# DOCKER_BUILDKIT: 1 # Disabled for now, but we should look at this because it will speedup building!
|
|
# DOCKER_REPO/secrets.DOCKERHUB_REPO needs to be 'index.docker.io/<user>/<repo>'
|
|
DOCKER_REPO: ${{ secrets.DOCKERHUB_REPO }}
|
|
SOURCE_COMMIT: ${{ github.sha }}
|
|
SOURCE_REPOSITORY_URL: "https://github.com/${{ github.repository }}"
|
|
steps:
|
|
# Checkout the repo
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
# Login to Docker Hub
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
# Determine Docker Tag
|
|
- name: Init Variables
|
|
id: vars
|
|
shell: bash
|
|
run: |
|
|
# Check which main tag we are going to build determined by github.ref
|
|
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
|
|
echo "set-output name=DOCKER_TAG::${GITHUB_REF#refs/*/}"
|
|
echo "::set-output name=DOCKER_TAG::${GITHUB_REF#refs/*/}"
|
|
elif [[ "${{ github.ref }}" == refs/heads/* ]]; then
|
|
echo "set-output name=DOCKER_TAG::testing"
|
|
echo "::set-output name=DOCKER_TAG::testing"
|
|
fi
|
|
# End Determine Docker Tag
|
|
|
|
- name: Build Debian based images
|
|
shell: bash
|
|
env:
|
|
DOCKER_TAG: ${{steps.vars.outputs.DOCKER_TAG}}
|
|
run: |
|
|
./hooks/build
|
|
|
|
- name: Push Debian based images
|
|
shell: bash
|
|
env:
|
|
DOCKER_TAG: ${{steps.vars.outputs.DOCKER_TAG}}
|
|
run: |
|
|
./hooks/push
|
|
|
|
- name: Build Alpine based images
|
|
shell: bash
|
|
env:
|
|
DOCKER_TAG: "${{steps.vars.outputs.DOCKER_TAG}}-alpine"
|
|
run: |
|
|
./hooks/build
|
|
|
|
- name: Push Alpine based images
|
|
shell: bash
|
|
env:
|
|
DOCKER_TAG: "${{steps.vars.outputs.DOCKER_TAG}}-alpine"
|
|
run: |
|
|
./hooks/push
|