ci: Refactor timelord to its own action
This commit is contained in:
parent
e200a7d991
commit
b5d2ef9a4a
2 changed files with 50 additions and 22 deletions
46
.forgejo/actions/timelord/action.yml
Normal file
46
.forgejo/actions/timelord/action.yml
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
name: timelord
|
||||||
|
description: |
|
||||||
|
Use timelord to set file timestamps
|
||||||
|
inputs:
|
||||||
|
key:
|
||||||
|
description: |
|
||||||
|
The key to use for caching the timelord data.
|
||||||
|
This should be unique to the repository and the runner.
|
||||||
|
required: true
|
||||||
|
default: timelord-v0
|
||||||
|
path:
|
||||||
|
description: |
|
||||||
|
The path to the directory to be timestamped.
|
||||||
|
This should be the root of the repository.
|
||||||
|
required: true
|
||||||
|
default: .
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- name: Cache timelord-cli installation
|
||||||
|
id: cache-timelord-bin
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.cargo/bin/timelord
|
||||||
|
key: timelord-cli-v3.0.1
|
||||||
|
- name: Install timelord-cli
|
||||||
|
uses: https://github.com/cargo-bins/cargo-binstall@main
|
||||||
|
if: steps.cache-timelord-bin.outputs.cache-hit != 'true'
|
||||||
|
- run: cargo binstall timelord-cli@3.0.1
|
||||||
|
shell: bash
|
||||||
|
if: steps.cache-timelord-bin.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
|
- name: Load timelord files
|
||||||
|
uses: actions/cache/restore@v3
|
||||||
|
with:
|
||||||
|
path: /timelord/
|
||||||
|
key: ${{ inputs.key }}
|
||||||
|
- name: Run timelord to set timestamps
|
||||||
|
shell: bash
|
||||||
|
run: timelord sync --source-dir ${{ inputs.path }} --cache-dir /timelord/
|
||||||
|
- name: Save timelord
|
||||||
|
uses: actions/cache/save@v3
|
||||||
|
with:
|
||||||
|
path: /timelord/
|
||||||
|
key: ${{ inputs.key }}
|
|
@ -87,18 +87,6 @@ jobs:
|
||||||
- name: Install rust
|
- name: Install rust
|
||||||
uses: ./.forgejo/actions/rust-toolchain
|
uses: ./.forgejo/actions/rust-toolchain
|
||||||
|
|
||||||
- name: Cache timelord-cli installation
|
|
||||||
id: cache-timelord-bin
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: ~/.cargo/bin/timelord
|
|
||||||
key: timelord-cli-v3.0.1
|
|
||||||
- name: Install timelord-cli
|
|
||||||
uses: https://github.com/cargo-bins/cargo-binstall@main
|
|
||||||
if: steps.cache-timelord-bin.outputs.cache-hit != 'true'
|
|
||||||
- run: cargo binstall timelord-cli@3.0.1
|
|
||||||
if: steps.cache-timelord-bin.outputs.cache-hit != 'true'
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
|
@ -132,18 +120,12 @@ jobs:
|
||||||
echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
|
echo "COMMIT_SHORT_SHA=$calculatedSha" >> $GITHUB_ENV
|
||||||
- name: Get Git commit timestamps
|
- name: Get Git commit timestamps
|
||||||
run: echo "TIMESTAMP=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
|
run: echo "TIMESTAMP=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
|
||||||
- name: Set up timelord
|
|
||||||
uses: actions/cache/restore@v3
|
- uses: ./.forgejo/actions/timelord
|
||||||
with:
|
with:
|
||||||
path: /timelord/
|
|
||||||
key: timelord-v0 # Cache is already split per runner
|
|
||||||
- name: Run timelord to set timestamps
|
|
||||||
run: timelord sync --source-dir . --cache-dir /timelord/
|
|
||||||
- name: Save timelord
|
|
||||||
uses: actions/cache/save@v3
|
|
||||||
with:
|
|
||||||
path: /timelord/
|
|
||||||
key: timelord-v0
|
key: timelord-v0
|
||||||
|
path: .
|
||||||
|
|
||||||
- name: Build and push Docker image by digest
|
- name: Build and push Docker image by digest
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue