Compare commits

..

4 commits

Author SHA1 Message Date
Erik C. Thauvin 923429c2cc
Merge 54b2b4d305 into 45c86e7efa 2026-05-28 10:17:17 -07:00
Erik C. Thauvin 54b2b4d305
Add publish (snapshots only) GitHub workflow 2026-05-28 10:17:06 -07:00
Erik C. Thauvin b31072d8b4
Add dependencies caching for GitHub workflows 2026-05-28 10:17:06 -07:00
Erik C. Thauvin 32680566c2
Add download --auto argument, emulating autoDownloadPurge = true in the CLI.
To be used when caching dependencies in CI workflows.
2026-05-28 04:13:03 -07:00
7 changed files with 84 additions and 66 deletions

View file

@ -112,27 +112,11 @@ jobs:
uses: actions/cache@v5 uses: actions/cache@v5
with: with:
path: lib path: lib
key: ${{ runner.os }}-bld-${{ hashFiles('lib/bld/bld-wrapper.properties') }} key: ${{ runner.os }}-bld-java${{ matrix.java-version}}-lib
restore-keys: | restore-keys: ${{ runner.os }}-bld-java${{ matrix.java-version}}-lib
${{ runner.os }}-bld-
- name: Check for bld cache
id: check-cache
shell: bash
run: |
if [ -f "lib/bld/bld.cache" ]; then
echo "cache_exists=true" >> $GITHUB_OUTPUT
else
echo "cache_exists=false" >> $GITHUB_OUTPUT
fi
- name: Download dependencies - name: Download dependencies
if: steps.check-cache.outputs.cache_exists == 'false' run: ./bld clean download
run: ./bld clean download purge
- name: Update dependencies
if: steps.check-cache.outputs.cache_exists == 'true'
run: ./bld clean updates
- name: Compile source - name: Compile source
run: ./bld compile run: ./bld compile
@ -177,27 +161,11 @@ jobs:
uses: actions/cache@v5 uses: actions/cache@v5
with: with:
path: lib path: lib
key: ${{ runner.os }}-bld-${{ hashFiles('lib/bld/bld-wrapper.properties') }} key: ${{ runner.os }}-bld-java${{ matrix.java-version}}-lib
restore-keys: | restore-keys: ${{ runner.os }}-bld-java${{ matrix.java-version}}-lib
${{ runner.os }}-bld-
- name: Check for bld cache
id: check-cache
shell: bash
run: |
if [ -f "lib/bld/bld.cache" ]; then
echo "cache_exists=true" >> $GITHUB_OUTPUT
else
echo "cache_exists=false" >> $GITHUB_OUTPUT
fi
- name: Download dependencies - name: Download dependencies
if: steps.check-cache.outputs.cache_exists == 'false' run: ./bld clean download
run: ./bld clean download purge
- name: Update dependencies
if: steps.check-cache.outputs.cache_exists == 'true'
run: ./bld clean updates
- name: Compile source - name: Compile source
run: ./bld compile run: ./bld compile
@ -240,27 +208,11 @@ jobs:
uses: actions/cache@v5 uses: actions/cache@v5
with: with:
path: lib path: lib
key: ${{ runner.os }}-bld-${{ hashFiles('lib/bld/bld-wrapper.properties') }} key: ${{ runner.os }}-bld-java${{ matrix.java-version}}-lib
restore-keys: | restore-keys: ${{ runner.os }}-bld-java${{ matrix.java-version}}-lib
${{ runner.os }}-bld-
- name: Check for bld cache
id: check-cache
shell: bash
run: |
if [ -f "lib/bld/bld.cache" ]; then
echo "cache_exists=true" >> $GITHUB_OUTPUT
else
echo "cache_exists=false" >> $GITHUB_OUTPUT
fi
- name: Download dependencies - name: Download dependencies
if: steps.check-cache.outputs.cache_exists == 'false' run: .\bld.bat clean download
run: .\bld.bat download purge
- name: Update dependencies
if: steps.check-cache.outputs.cache_exists == 'true'
run: .\bld.bat updates
- name: Compile source - name: Compile source
run: .\bld.bat compile run: .\bld.bat compile

View file

@ -22,6 +22,7 @@ concurrency:
jobs: jobs:
# Single deploy job since we're just deploying # Single deploy job since we're just deploying
deploy: deploy:
if: github.repository == 'rife2/bld'
environment: environment:
name: github-pages name: github-pages
url: ${{ steps.deployment.outputs.page_url }} url: ${{ steps.deployment.outputs.page_url }}

49
.github/workflows/publish.yml vendored Normal file
View file

@ -0,0 +1,49 @@
name: publish-snapshots
on:
workflow_dispatch:
jobs:
build-bld-project:
runs-on: ubuntu-latest
steps:
- name: Checkout source repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Check version is SNAPSHOT
shell: bash
run: |
VERSION=$(tr -d '[:space:]' < src/main/resources/BLD_VERSION)
echo "Current version: $VERSION"
if ! echo "$VERSION" | grep -q 'SNAPSHOT$'; then
echo "::error:: Version '$VERSION' is not a SNAPSHOT. Aborting publish."
exit 1
fi
- name: Set up JDK
uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: 17
- name: Download dependencies
run: ./bld download
- name: Import key
run: echo "${{ secrets.SIGN_SECRET_KEY }}" | gpg --batch --import
- name: Publish
run: >-
./bld compile test publish
-Drife2Username=${{ secrets.RIFE2_USERNAME }}
-Drife2Password=${{ secrets.RIFE2_PASSWORD }}
-DsonatypeUser=${{ secrets.SONATYPE_USER }}
-DsonatypePassword=${{ secrets.SONATYPE_PASSWORD }}
-DsignKey=${{ secrets.SIGN_KEY }}
-DsignPassphrase=${{ secrets.SIGN_PASSPHRASE }}
- name: Delete GnuPG data
run: rm -rfv $HOME/.gnupg

View file

@ -9,4 +9,4 @@ bld.javaOptions=
bld.javacOptions= bld.javacOptions=
bld.repositories=MAVEN_CENTRAL,RIFE2_RELEASES,RIFE2_SNAPSHOTS bld.repositories=MAVEN_CENTRAL,RIFE2_RELEASES,RIFE2_SNAPSHOTS
bld.sourceDirectories=core/src/bld/java bld.sourceDirectories=core/src/bld/java
bld.version=2.3.0 bld.version=2.3.1-SNAPSHOT

View file

@ -534,7 +534,22 @@ public class BaseProject extends BuildExecutor {
@BuildCommand(help = DownloadHelp.class) @BuildCommand(help = DownloadHelp.class)
public void download() public void download()
throws Exception { throws Exception {
downloadOperation().executeOnce(() -> downloadOperation().fromProject(this)); var auto = false;
var arguments = this.arguments();
while (!arguments.isEmpty()) {
var argument = arguments.get(0);
if (DownloadOperation.AUTO_OPTION.equals(argument)) {
arguments.remove(0);
auto = true;
} else {
break;
}
}
if (auto) {
performAutoDownloadPurge();
} else {
downloadOperation().executeOnce(() -> downloadOperation().fromProject(this));
}
} }
/** /**

View file

@ -5,7 +5,7 @@
package rife.bld.help; package rife.bld.help;
import rife.bld.CommandHelp; import rife.bld.CommandHelp;
import rife.tools.StringUtils; import rife.bld.operations.DownloadOperation;
/** /**
* Provides help for the download command. * Provides help for the download command.
@ -15,13 +15,13 @@ import rife.tools.StringUtils;
*/ */
public class DownloadHelp implements CommandHelp { public class DownloadHelp implements CommandHelp {
public String getSummary() { public String getSummary() {
return "Downloads all dependencies of the project"; return "Downloads all dependencies of the project (take option)";
} }
public String getDescription(String topic) { public String getDescription(String topic) {
return StringUtils.replace(""" return String.format("""
Downloads all dependencies of the project Downloads all dependencies of the project
Usage : ${topic}""", "${topic}", topic); Usage : %s [%s]""", topic, DownloadOperation.AUTO_OPTION);
} }
} }

View file

@ -25,6 +25,7 @@ import static rife.bld.dependencies.Dependency.CLASSIFIER_SOURCES;
* @since 1.5 * @since 1.5
*/ */
public class DownloadOperation extends AbstractOperation<DownloadOperation> { public class DownloadOperation extends AbstractOperation<DownloadOperation> {
public static final String AUTO_OPTION = "--auto";
private boolean offline_ = false; private boolean offline_ = false;
private HierarchicalProperties properties_ = null; private HierarchicalProperties properties_ = null;
private ArtifactRetriever retriever_ = null; private ArtifactRetriever retriever_ = null;