Skip to content

Commit

Permalink
add tag workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
arvyy committed May 12, 2024
1 parent aa5e18e commit d44526c
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 4 deletions.
148 changes: 148 additions & 0 deletions .github/workflows/tag_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: Build ISLISP interpreter
on:
workflow_dispatch:
push:
tags:
- '*'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
architecture: x64
cache: 'maven'
- name: Verify checkstyle
run: |
mvn -Dcheckstyle.violationSeverity=warning validate
- name: Test
run: |
mvn test
create-release:
needs: [test]
runs-on: ubuntu-latest
steps:
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref_name }}
run: |
gh release create "$tag" \
--repo="$GITHUB_REPOSITORY" \
--title="${GITHUB_REPOSITORY#*/} ${tag#v}"
build-jar:
needs: [create-release]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn -Drevision=${{ github.ref_name }} package
- name: Upload jar to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${{ github.ref_name }} language/target/islisp.jar --clobber
build-linux:
needs: [create-release]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn -Drevision=${{ github.ref_name }}-Pnative -DskipTests=true package
- name: Upload linux binary to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mv launcher/target/islisp islisp-linux
gh release upload nightly islisp-linux --clobber
- uses: actions/upload-artifact@v2
with:
name: islisp-linux
path: islisp-linux

build-windows:
needs: [create-release]
runs-on: windows-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn -Drevision=${{ github.ref_name }} -Pnative -DskipTests=true package
- name: Upload windows binary to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mv launcher/target/islisp.exe islisp.exe
gh release upload nightly islisp.exe --clobber
build-macos:
needs: [create-release]
runs-on: macos-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
java-version: '22.0.1'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build jar
run: |
mvn -Drevision=${{ github.ref_name }} -Pnative -DskipTests=true package
- name: Upload macos binary to github nightly release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mv launcher/target/islisp islisp-macos
gh release upload nightly islisp-macos --clobber
publish-docker:
needs: [build-linux]
runs-on: ubuntu-latest
environment: 'Docker hub'
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v2
with:
name: islisp-linux
path: .
- uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- uses: docker/build-push-action@v3
with:
context: .
file: ./ghworkflow.Dockerfile
push: true
tags: arvyy/islisp:${{ github.ref_name }}
1 change: 1 addition & 0 deletions language/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@
<generateGitPropertiesFilename>${project.build.outputDirectory}/com/github/arvyy/islisp/buildinfo/git-islisp-lang.properties</generateGitPropertiesFilename>
<includeOnlyProperties>
<includeOnlyProperty>git.commit.id.full</includeOnlyProperty>
<includeOnlyProperty>git.tags</includeOnlyProperty>
</includeOnlyProperties>
<commitIdGenerationMode>full</commitIdGenerationMode>
</configuration>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,14 @@ public static void main(String[] args) throws IOException, ParseException {
if (commandLine.hasOption(versionOpt)) {
var properties = BuildInfo.getBuildProperties();
var pw = new PrintWriter(System.out);
new HelpFormatter().printWrapped(pw, HELP_WIDTH, """
ISLISP Truffle
Git commit {version}
""".replace("{version}", properties.getProperty("git.commit.id.full")));
var sb = new StringBuilder("ISLISP Truffle");
var tag = properties.getProperty("git.tags");
if (tag != null) {
sb.append(" ").append(tag);
} else {
sb.append("\nGit commit ").append(properties.getProperty("git.commit.id.full"));
}
new HelpFormatter().printWrapped(pw, HELP_WIDTH, sb.toString());
pw.flush();
return;
}
Expand Down

0 comments on commit d44526c

Please sign in to comment.