-
Notifications
You must be signed in to change notification settings - Fork 213
93 lines (84 loc) · 2.57 KB
/
Copy pathdistro.yml
File metadata and controls
93 lines (84 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
name: Distro
on:
workflow_dispatch:
push:
env:
TAG_NAME: ${{ format('wslvpnkit:{0}-{1}', github.sha, github.run_number) }}
RUN_URL: ${{ format('{0}/{1}/actions/runs/{2}/attempts/{3}', github.server_url, github.repository, github.run_id, github.run_attempt) }}
jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: docker/setup-docker-action@v5
- uses: actions/checkout@v7
- name: run tests
run: ./tests/run.sh
build:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
attestations: write
steps:
- uses: docker/setup-docker-action@v5
with:
daemon-config: |
{
"debug": true,
"features": {
"containerd-snapshotter": true
}
}
- uses: docker/setup-qemu-action@v4
- uses: docker/setup-buildx-action@v4
- uses: actions/checkout@v7
- uses: docker/build-push-action@v7
with:
context: .
file: ./distro/alpine.dockerfile
platforms: linux/arm64,linux/amd64
push: false
load: true
provenance: mode=max
sbom: true
tags: ${{ env.TAG_NAME }}
build-args: |
REF=${{ env.RUN_URL }}
VERSION=${{ github.ref_type == 'tag' && github.ref_name || github.sha }}
- name: export amd64
run: |
CONTAINER_ID=$(docker create --platform linux/amd64 ${{ env.TAG_NAME }})
docker export $CONTAINER_ID | gzip > wsl-vpnkit-amd64.wsl
sha256sum wsl-vpnkit-amd64.wsl | tee wsl-vpnkit-amd64.wsl.sha256
ls -la wsl-vpnkit-amd64.wsl
- name: export arm64
run: |
CONTAINER_ID=$(docker create --platform linux/arm64 ${{ env.TAG_NAME }})
docker export $CONTAINER_ID | gzip > wsl-vpnkit-arm64.wsl
sha256sum wsl-vpnkit-arm64.wsl | tee wsl-vpnkit-arm64.wsl.sha256
ls -la wsl-vpnkit-arm64.wsl
- uses: actions/attest-build-provenance@v4
with:
subject-path: |
wsl-vpnkit-amd64.wsl
wsl-vpnkit-arm64.wsl
- uses: actions/upload-artifact@v7
with:
path: |
wsl-vpnkit-amd64.wsl
wsl-vpnkit-amd64.wsl.sha256
wsl-vpnkit-arm64.wsl
wsl-vpnkit-arm64.wsl.sha256
- uses: softprops/action-gh-release@v3
if: github.ref_type == 'tag'
with:
token: ${{ secrets.GH_TOKEN }}
prerelease: true
draft: true
files: |
wsl-vpnkit-amd64.wsl
wsl-vpnkit-amd64.wsl.sha256
wsl-vpnkit-arm64.wsl
wsl-vpnkit-arm64.wsl.sha256