Skip to content

Commit e9c0b59

Browse files
committed
Initial commit: IronGo - Go parser for .NET
0 parents  commit e9c0b59

114 files changed

Lines changed: 15053 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
build:
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
matrix:
14+
os: [ubuntu-latest, windows-latest, macos-latest]
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Setup .NET
20+
uses: actions/setup-dotnet@v4
21+
with:
22+
dotnet-version: '9.0.x'
23+
24+
- name: Setup Java
25+
uses: actions/setup-java@v4
26+
with:
27+
distribution: 'temurin'
28+
java-version: '17'
29+
30+
- name: Restore dependencies
31+
run: dotnet restore
32+
33+
- name: Build
34+
run: dotnet build --no-restore --configuration Release
35+
36+
- name: Test
37+
run: dotnet test --no-build --configuration Release --verbosity normal --logger "trx;LogFileName=test-results.trx"
38+
39+
- name: Upload test results
40+
uses: actions/upload-artifact@v4
41+
if: always()
42+
with:
43+
name: test-results-${{ matrix.os }}
44+
path: '**/test-results.trx'
45+
46+
- name: Pack NuGet package
47+
if: matrix.os == 'ubuntu-latest'
48+
run: dotnet pack --no-build --configuration Release --output nupkgs
49+
50+
- name: Upload NuGet package
51+
if: matrix.os == 'ubuntu-latest'
52+
uses: actions/upload-artifact@v4
53+
with:
54+
name: nuget-package
55+
path: nupkgs/*.nupkg
56+
57+
publish:
58+
needs: build
59+
runs-on: ubuntu-latest
60+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
61+
62+
steps:
63+
- name: Download NuGet package
64+
uses: actions/download-artifact@v4
65+
with:
66+
name: nuget-package
67+
path: nupkgs
68+
69+
- name: Setup .NET
70+
uses: actions/setup-dotnet@v4
71+
with:
72+
dotnet-version: '9.0.x'
73+
74+
- name: Publish to NuGet.org
75+
run: dotnet nuget push nupkgs/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
76+
env:
77+
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}

.github/workflows/release.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
release:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- name: Setup .NET
15+
uses: actions/setup-dotnet@v4
16+
with:
17+
dotnet-version: '9.0.x'
18+
19+
- name: Setup Java
20+
uses: actions/setup-java@v4
21+
with:
22+
distribution: 'temurin'
23+
java-version: '17'
24+
25+
- name: Get version from tag
26+
id: version
27+
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
28+
29+
- name: Update project version
30+
run: |
31+
find . -name "*.csproj" -exec sed -i "s/<Version>.*<\/Version>/<Version>${{ steps.version.outputs.VERSION }}<\/Version>/g" {} \;
32+
33+
- name: Restore dependencies
34+
run: dotnet restore
35+
36+
- name: Build
37+
run: dotnet build --configuration Release --no-restore
38+
39+
- name: Test
40+
run: dotnet test --configuration Release --no-build --verbosity normal
41+
42+
- name: Pack
43+
run: dotnet pack --configuration Release --no-build --output nupkgs -p:PackageVersion=${{ steps.version.outputs.VERSION }}
44+
45+
- name: Push to NuGet
46+
run: dotnet nuget push nupkgs/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json
47+
env:
48+
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
49+
50+
- name: Upload packages to release
51+
uses: softprops/action-gh-release@v1
52+
with:
53+
files: nupkgs/*
54+
env:
55+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)