-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build Docker Hub images via Github Actions
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.
- Loading branch information
Showing
4 changed files
with
133 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters