-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* attempting to cleanup ci * removing extra requirement * fixing update deployments * reordering calls * fixing paths * Revert "fixing paths" This reverts commit 8bd746b. * clarifying names * renaming * adding bazel build to updating of deps * renaming file to a more suitable name * fixing container image and linting * fixing
- Loading branch information
1 parent
fd165ed
commit 27c33ae
Showing
6 changed files
with
230 additions
and
169 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
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,70 @@ | ||
name: Build and test | ||
on: | ||
push: | ||
branches: | ||
- "main" | ||
pull_request: | ||
merge_group: | ||
jobs: | ||
bazel: | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: ./.github/workflows/setup-bazel | ||
name: Setup bazel | ||
|
||
######################################## | ||
# Build and test | ||
######################################## | ||
- name: Set GIT_HASH variable | ||
run: | | ||
set -eExou pipefail | ||
# Set GIT_HASH variable based on the type of GitHub reference | ||
if [[ "$GITHUB_REF_TYPE" == "tag" ]]; then | ||
echo "GIT_HASH=$GITHUB_REF_NAME" >> "$GITHUB_ENV" # Embed tag name as GIT_HASH | ||
else | ||
echo "GIT_HASH=$GITHUB_SHA" >> "$GITHUB_ENV" # Embed commit SHA as GIT_HASH | ||
fi | ||
- run: bazel build ... | ||
name: Building | ||
- run: bazel test ... | ||
name: Testing | ||
|
||
######################################## | ||
# Prepare release | ||
######################################## | ||
- name: Upload artifact for release | ||
uses: actions/upload-artifact@v2 | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
with: | ||
name: dre | ||
path: bazel-out/k8-opt/bin/rs/cli/dre | ||
- name: Call prepare release | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
uses: ./.github/workflows/prepare-release.yml | ||
|
||
######################################## | ||
# Upload container images | ||
######################################## | ||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Push images to GitHub Container Registry | ||
if: ${{ startsWith(github.ref, 'refs/tags/v') || startsWith(github.ref, 'refs/heads/container') || (github.ref == 'refs/heads/main') }} | ||
run: bazel query --noshow_progress 'kind("oci_push", ...)' | xargs -I_target bazel run _target -- --tag ${GITHUB_SHA} | ||
|
||
######################################## | ||
# Update k8s deployments | ||
######################################## | ||
- name: Update k8s deployments | ||
if: ${{ startsWith(github.ref, 'refs/tags/v') || startsWith(github.ref, 'refs/heads/container') || (github.ref == 'refs/heads/main') }} | ||
uses: ./.github/workflows/update-k8s-deployments.yml | ||
|
||
######################################## | ||
# Optimize bazel cache by hard-linking duplicate files | ||
######################################## | ||
- name: Optimize bazel cache directory before uploading | ||
run: bin/optimize-bazel-cache.sh |
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,38 @@ | ||
name: Prepare release | ||
on: | ||
workflow_call: | ||
inputs: | ||
ARTIFACT_NAME: | ||
required: true | ||
description: "Name of the artifact to download" | ||
type: string | ||
|
||
jobs: | ||
prepare: | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Download built artifact | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: ${{ inputs.ARTIFACT_NAME }} | ||
|
||
- name: Chmod | ||
env: | ||
ARTIFACT_NAME: ${{ inputs.ARTIFACT_NAME }} | ||
run: chmod +x $ARTIFACT_NAME | ||
|
||
- name: Prepare release | ||
# v0.1.15 | ||
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
body_path: CHANGELOG.md | ||
generate_release_notes: true | ||
draft: true | ||
prerelease: true | ||
files: | | ||
release/* | ||
- uses: geekyeggo/delete-artifact@v4 | ||
with: | ||
name: dre |
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,31 @@ | ||
name: Setup bazel | ||
description: Reusable action for setting up bazel | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
######################################## | ||
# Setup | ||
######################################## | ||
- name: Free Disk Space (Ubuntu) | ||
uses: jlumbroso/free-disk-space@v1.3.1 | ||
with: | ||
# this might remove tools that are actually needed, | ||
# when set to "true" but frees about 6 GB | ||
tool-cache: true | ||
large-packages: false # this is slow | ||
- uses: bazelbuild/setup-bazelisk@v2 | ||
|
||
######################################## | ||
# Download and unpack cache | ||
######################################## | ||
- name: Mount bazel cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: "~/.cache/bazel" | ||
# Configure cache updates | ||
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache | ||
# https://github.com/actions/cache/blob/main/examples.md#---bazel | ||
key: ${{ runner.os }}-bazel-${{ hashFiles('.bazelversion', '.bazelrc', 'WORKSPACE', 'WORKSPACE.bazel', 'MODULE.bazel', 'Cargo.Bazel.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-bazel- |
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,48 @@ | ||
name: Update dependencies | ||
on: | ||
schedule: | ||
# * is a special character in YAML so you have to quote this string | ||
- cron: '30 1 * * *' | ||
|
||
jobs: | ||
update: | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: ./.github/workflows/setup-bazel | ||
|
||
######################################## | ||
# Once per night, update dependencies and completely delete and recreate bazel cache | ||
######################################## | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.11" | ||
- uses: snok/install-poetry@v1 | ||
|
||
- name: Completely delete bazel cache then update deps | ||
run: | | ||
set -eExou pipefail | ||
# | ||
# Completely delete bazel cache | ||
# | ||
sudo rm -rf ~/.cache/bazel/* | ||
# | ||
# Update dependencies | ||
# | ||
cargo update | ||
poetry update | ||
./bin/poetry-export.sh | ||
CARGO_BAZEL_REPIN=true bazel query //... | ||
- name: Build | ||
run: bazel build ... | ||
|
||
- uses: stefanzweifel/git-auto-commit-action@v5 | ||
with: | ||
commit-message: "chore: Update dependencies" | ||
branch: bot-update-deps | ||
|
||
######################################## | ||
# Optimize bazel cache by hard-linking duplicate files | ||
######################################## | ||
- name: Optimize bazel cache directory before uploading | ||
run: bin/optimize-bazel-cache.sh |
Oops, something went wrong.