Skip to content

Commit

Permalink
fix: Use GITHUB_REF to retrieve tag before checking the most recent t…
Browse files Browse the repository at this point in the history
…ag (#238)

* fix: Use GITHUB_REF to retrieve tag before checking the most recent tag (#238)

* Update tests

* Check also tags sorted by creatordate for the current GITHUB_SHA

* fix: Check tags length

Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
  • Loading branch information
crazy-max and crazy-max committed Aug 27, 2020
1 parent 3093121 commit 90d3577
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 3 deletions.
17 changes: 16 additions & 1 deletion __tests__/git.test.ts
@@ -1,15 +1,30 @@
import * as git from '../src/git';

describe('git', () => {
it('returns git tag', async () => {
it('returns git tag through describe', async () => {
process.env.GITHUB_SHA = '309312125ed7a32fcd48f3a1e24dcafe669c186a';
const tag: string = await git.getTag();
console.log(`tag: ${tag}`);
expect(tag).not.toEqual('');
});
it('returns git tag through GITHUB_SHA', async () => {
process.env.GITHUB_SHA = '6e37040623d14330555c7be1603a9182cf92d32a';
const tag: string = await git.getTag();
console.log(`tag: ${tag}`);
expect(tag).toEqual('v1');
});
it('returns git tag through GITHUB_REF', async () => {
process.env.GITHUB_REF = 'refs/tags/v2.2.1';
const tag: string = await git.getTag();
console.log(`tag: ${tag}`);
expect(tag).toEqual('v2.2.1');
});
it('checks if tag is dirty', async () => {
expect(await git.isTagDirty('v1.3.1')).toBe(true);
});
it('returns short commit', async () => {
const commit: string = await git.getShortCommit();
console.log(`commit: ${commit}`);
expect(commit).not.toEqual('');
});
});
1 change: 1 addition & 0 deletions __tests__/github.test.ts
Expand Up @@ -5,6 +5,7 @@ describe('github', () => {
const release = await github.getRelease('latest');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
console.log(`tag_name: ${release?.tag_name}`);
});
it('returns v0.117.0 GoReleaser GitHub release', async () => {
const release = await github.getRelease('v0.117.0');
Expand Down
13 changes: 12 additions & 1 deletion dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 14 additions & 1 deletion src/git.ts
Expand Up @@ -11,7 +11,20 @@ const git = async (args: string[] = []): Promise<string> => {

export async function getTag(): Promise<string> {
try {
return await git(['describe', '--tags', '--abbrev=0']);
if ((process.env.GITHUB_REF || '').startsWith('refs/tags')) {
const tag = (process.env.GITHUB_REF || '').split('/').pop();
if (tag !== '' && tag !== undefined) {
return tag;
}
}
return await git(['tag', '--points-at', `${process.env.GITHUB_SHA}`, '--sort', '-version:creatordate']).then(
tags => {
if (tags.length == 0) {
return git(['describe', '--tags', '--abbrev=0']);
}
return tags.split('\n')[0];
}
);
} catch (err) {
return '';
}
Expand Down

0 comments on commit 90d3577

Please sign in to comment.